なんかよくわからない事が起きたのでとりあえずメモ。
rails の Time.tomorrow が 1582-10-13 だと動きがおかしい?
(14日からは正しく .tomorrow されるっぽい。なんで?)
これ、を実行してみる。
<%
y = 1582
m = 10
(1..30).each do |d|
start_date = Time.mktime(y.to_i, m.to_i, d, 1, 00, 00)
next_date = Time.mktime(y.to_i, m.to_i, (d+1), 1, 00, 00)
tomorrow = start_date.tomorrow
%>
><%= start_date %> / <%= next_date %> / <%= tomorrow %>
<%= (next_date == tomorrow) ? '同じ' : '違う' %>
<br />
<%
end
%>
結果、
1582-10-01 01:00:00 +0900 / 1582-10-02 01:00:00 +0900 / 1582-09-22 01:00:00 +0900 違う
1582-10-02 01:00:00 +0900 / 1582-10-03 01:00:00 +0900 / 1582-09-23 01:00:00 +0900 違う
1582-10-03 01:00:00 +0900 / 1582-10-04 01:00:00 +0900 / 1582-09-24 01:00:00 +0900 違う
1582-10-04 01:00:00 +0900 / 1582-10-05 01:00:00 +0900 / 1582-09-25 01:00:00 +0900 違う
1582-10-05 01:00:00 +0900 / 1582-10-06 01:00:00 +0900 / 1582-09-26 01:00:00 +0900 違う
1582-10-06 01:00:00 +0900 / 1582-10-07 01:00:00 +0900 / 1582-09-27 01:00:00 +0900 違う
1582-10-07 01:00:00 +0900 / 1582-10-08 01:00:00 +0900 / 1582-09-28 01:00:00 +0900 違う
1582-10-08 01:00:00 +0900 / 1582-10-09 01:00:00 +0900 / 1582-09-29 01:00:00 +0900 違う
1582-10-09 01:00:00 +0900 / 1582-10-10 01:00:00 +0900 / 1582-09-30 01:00:00 +0900 違う
1582-10-10 01:00:00 +0900 / 1582-10-11 01:00:00 +0900 / 1582-10-01 01:00:00 +0900 違う
1582-10-11 01:00:00 +0900 / 1582-10-12 01:00:00 +0900 / 1582-10-02 01:00:00 +0900 違う
1582-10-12 01:00:00 +0900 / 1582-10-13 01:00:00 +0900 / 1582-10-03 01:00:00 +0900 違う
1582-10-13 01:00:00 +0900 / 1582-10-14 01:00:00 +0900 / 1582-10-04 01:00:00 +0900 違う
1582-10-14 01:00:00 +0900 / 1582-10-15 01:00:00 +0900 / 1582-10-15 01:00:00 +0900 同じ
1582-10-15 01:00:00 +0900 / 1582-10-16 01:00:00 +0900 / 1582-10-16 01:00:00 +0900 同じ
1582-10-16 01:00:00 +0900 / 1582-10-17 01:00:00 +0900 / 1582-10-17 01:00:00 +0900 同じ
1582-10-17 01:00:00 +0900 / 1582-10-18 01:00:00 +0900 / 1582-10-18 01:00:00 +0900 同じ
1582-10-18 01:00:00 +0900 / 1582-10-19 01:00:00 +0900 / 1582-10-19 01:00:00 +0900 同じ
1582-10-19 01:00:00 +0900 / 1582-10-20 01:00:00 +0900 / 1582-10-20 01:00:00 +0900 同じ
1582-10-20 01:00:00 +0900 / 1582-10-21 01:00:00 +0900 / 1582-10-21 01:00:00 +0900 同じ
1582-10-21 01:00:00 +0900 / 1582-10-22 01:00:00 +0900 / 1582-10-22 01:00:00 +0900 同じ
1582-10-22 01:00:00 +0900 / 1582-10-23 01:00:00 +0900 / 1582-10-23 01:00:00 +0900 同じ
1582-10-23 01:00:00 +0900 / 1582-10-24 01:00:00 +0900 / 1582-10-24 01:00:00 +0900 同じ
1582-10-24 01:00:00 +0900 / 1582-10-25 01:00:00 +0900 / 1582-10-25 01:00:00 +0900 同じ
1582-10-25 01:00:00 +0900 / 1582-10-26 01:00:00 +0900 / 1582-10-26 01:00:00 +0900 同じ
1582-10-26 01:00:00 +0900 / 1582-10-27 01:00:00 +0900 / 1582-10-27 01:00:00 +0900 同じ
1582-10-27 01:00:00 +0900 / 1582-10-28 01:00:00 +0900 / 1582-10-28 01:00:00 +0900 同じ
1582-10-28 01:00:00 +0900 / 1582-10-29 01:00:00 +0900 / 1582-10-29 01:00:00 +0900 同じ
1582-10-29 01:00:00 +0900 / 1582-10-30 01:00:00 +0900 / 1582-10-30 01:00:00 +0900 同じ
1582-10-30 01:00:00 +0900 / 1582-10-31 01:00:00 +0900 / 1582-10-31 01:00:00 +0900 同じ
とかなる。
1582-10-13日以前だと tomorrow が正しく動作してないっぽい?
なんで?
とりあえずメモ。