147 time = time + seconds_in_a[unit] * number; |
147 time = time + seconds_in_a[unit] * number; |
148 end }; |
148 end }; |
149 { lpeg.one_of{"this ", "in the ", "at "} * time_of_day / |
149 { lpeg.one_of{"this ", "in the ", "at "} * time_of_day / |
150 function (time_of_day) |
150 function (time_of_day) |
151 time_of_day = time_of_day:match("%S+$"); |
151 time_of_day = time_of_day:match("%S+$"); |
|
152 |
|
153 if time_of_day == "morning" and get_time_part(time, "hour") > time_of_days.morning then |
|
154 time = time + seconds_in_a.day; -- Morning has passed, so next morning |
|
155 end |
|
156 |
152 time = adjust_time(time, "hour", time_of_days[time_of_day]); |
157 time = adjust_time(time, "hour", time_of_days[time_of_day]); |
153 if time_of_day == "noon" or time_of_day == "midnight" then |
158 if time_of_day == "noon" or time_of_day == "midnight" then |
154 time = adjust_time(time, "min", 00); |
159 time = adjust_time(time, "min", 00); |
155 else |
160 else |
156 time = adjust_time(time, "min", 30); |
161 time = adjust_time(time, "min", 30); |