2014-02-07 3 views
0
HOLIDAYS = Schedule.new(Date.new(2012,1,1)) 
HOLIDAYS.add_recurrence_rule Rule.yearly.month_of_year(:october).day_of_month(31) 

Когда я проверяю HOLIDAYS.occurs_on? для 10/31/12 я получаю ЛОЖЬ, но когда я проверяю 10/30/12, я получаю ИСТИННУЮ.Одноразовая ошибка при использовании драгоценного камня Ice_Cube для планирования событий дня_о_________события

Что я делаю неправильно?

- редактирование - пример работы

days = Holidays::HALLOWEEN.occurrences(Date.today) 
days.each do |day| 
    Log.info day 
end 
Log.info Holidays::HALLOWEEN.occurs_on?(Date.new(2012,10,31)) 
Log.info Holidays::HALLOWEEN.occurs_on?(Date.new(2012,10,30)) 
Log.info Holidays::HALLOWEEN.occurs_on?(Date.new(2013,10,31)) 
Log.info Holidays::HALLOWEEN.occurs_on?(Date.new(2013,10,30)) 

Результаты в:

[09:22:15] INFO 2012-10-31 00:00:00 -0400 
[09:22:15] INFO 2013-10-31 00:00:00 -0400 
[09:22:15] INFO false 
[09:22:15] INFO true 
[09:22:15] INFO false 
[09:22:15] INFO true 
+0

Это вопрос високосного года? – dax

+0

Не думайте так; високосный год не влияет на количество дней в октябре, и у меня такая же проблема для 2013 года. – Dave

+0

Глядя на это снова, это, вероятно, -0400, что подталкивает нас назад в предыдущий день. Как я могу установить это на ноль или использовать целые дни, используя этот камень? – Dave

ответ

0

при переходе от Date.new (2012,10,31) до Time.utc (2012,10, 31) Я смог получить правильное поведение.