0
所以我想要一個方法,我可以通過它在一個月的一天和一個時間,它會找到下一個有效的DateTime。所以如果這天是9月15日,我正在尋找17日,那麼9月17日將會回來。但是如果我正在尋找第31名,那麼將於9月31日返回10月31日不存在。查找下一個有效的日期給予一天和一天的時間
我只是想創建一個方法,但它並沒有考慮到無效的日期:
def find_next_date(day, time)
now = Time.now
if (day == now.day && time > now.strftime("%H%M%S%N")) || day > now.day
DateTime.new(now.year, now.month, day, time)
else
if now.month + 1 > 12
year += 1
month = 1
else
year = now.year
month = now.month + 1
end
DateTime.new(year, month, day, time)
end
end
有沒有更好的方式來做到這一點,它會考慮到無效的日期?
嗯這會給我,我要找的答案,但我有點不喜歡它基本保持迭代以蠻力的方式。但這是我現在能想到的唯一方法。我可能會將next_day用於我自己的版本。謝謝! – Dragonfly
@Dragonfly我可以同意你的看法,但它似乎是最簡潔的解決方案,沒有過多複雜的事情,最大迭代大約是59.我確實考慮從Date.today創建一個範圍到(Date.today + 1.month)。 end_of_month,但意識到迭代將是相同的,並且遠不那麼簡潔,並且會在二月造成問題祝你好運。 – engineersmnky