summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/rbot/plugins/remind.rb15
1 files changed, 8 insertions, 7 deletions
diff --git a/data/rbot/plugins/remind.rb b/data/rbot/plugins/remind.rb
index 0d6e9ecc..e3f248ef 100644
--- a/data/rbot/plugins/remind.rb
+++ b/data/rbot/plugins/remind.rb
@@ -58,18 +58,19 @@ class RemindPlugin < Plugin
else
raise "invalid time string"
end
- when (/^(\d+):(\d+):(\d+)$/)
+ when (/^(\d+):(\d+)(?:\:(\d+))?$/)
hour = $1.to_i
min = $2.to_i
sec = $3.to_i
now = Time.now
later = Time.mktime(now.year, now.month, now.day, hour, min, sec)
- return later - now
- when (/^(\d+):(\d+)$/)
- hour = $1.to_i
- min = $2.to_i
- now = Time.now
- later = Time.mktime(now.year, now.month, now.day, hour, min, now.sec)
+
+ # if the given hour is earlier than current hour, given timestr
+ # must have been meant to be in the future
+ if hour < now.hour || hour <= now.hour && min < now.min
+ later += 60*60*24
+ end
+
return later - now
when (/^(\d+):(\d+)(am|pm)$/)
hour = $1.to_i