基本上我有一个应用程序,用户可以在其中选择从现在到 2 年后的任何一天的时间段。我正在创建一个每天运行的 rake 任务,以便从现在起 2 年内向我的数据库添加一条记录,以便明天仍然有 2 年的时间段选择。
以我目前的逻辑,我很好奇当有闰年时会发生什么,有没有办法让它更健壮以正确处理闰年?我担心我最终要么会完全错过一天,要么会出现重复的一天。
task :generate_timeslots => :environment do
startDate = Time.now.to_date + 2.years
endDate = Time.now.to_date + 2.years
startDate.upto(endDate).each do |d|
5.times do
timeslot = Timeslot.create
timeslot.location_id = 1
timeslot.timeslot = "#{d} 09:00:00"
timeslot.save
timeslot = Timeslot.create
timeslot.location_id = 1
timeslot.timeslot = "#{d} 11:00:00"
timeslot.save
timeslot = Timeslot.create
timeslot.location_id = 1
timeslot.timeslot = "#{d} 13:00:00"
timeslot.save
timeslot = Timeslot.create
timeslot.location_id = 1
timeslot.timeslot = "#{d} 15:00:00"
timeslot.save
end
end
end
最佳答案
答案是 IF '两年后'包括跨越闰年的 2 月 29 日日期,那么该备份中将包含一个“额外”的一天,以解释日历中 2 月 29 日的“额外”一天。