1
1

More than 5 years have passed since last update.

rails の Time.tomorrow が 1582-10-13 以前だと動きがおかしい?

Posted at

なんかよくわからない事が起きたのでとりあえずメモ。

rails の Time.tomorrow が 1582-10-13 だと動きがおかしい?

(14日からは正しく .tomorrow されるっぽい。なんで?)

これ、を実行してみる。

hoge.erb
<%
   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
%>
   &gt;<%= 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 が正しく動作してないっぽい?

なんで?

とりあえずメモ。

1
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1