в Rails 3.0.10
ruby-1.9.2-p180 :010 > Time::DAYS_INTO_WEEK
=> {:monday=>0, :tuesday=>1, :wednesday=>2, :thursday=>3, :friday=>4, :saturday=>5, :sunday=>6}
И
ruby-1.9.2-p180 :011 > Date.today
=> Mon, 10 Oct 2011
ruby-1.9.2-p180 :012 > Date.today.wday
=> 1
Итак, понедельник равен 0 в сопоставлении времени и 1 в сопоставлении даты.
https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/time/calculations.rb
Мне кажется, что начать с воскресенья, поскольку ноль - более безопасный, более распространенный, более вероятно, что кто-то другой его поймет. Я надеялся понять историю / рассуждения на случай, если я что-то упущу.
Мой вариант использования: я явно сохраняю день недели в своей базе данных. Я подумал, что хранение в виде целого числа будет более эффективным и более простым для работы, чем сохранение «понедельника», «вторника» и т. Д.
PS У меня возникла прекрасная идея сделать что-то вроде следующего. Отображение строк дня недели и обратно внутри методов (скрытие целого числа).
ruby-1.9.2-p180 :010 > Time::DAYS_INTO_WEEK
=> {:monday=>0, :tuesday=>1, :wednesday=>2, :thursday=>3, :friday=>4, :saturday=>5, :sunday=>6}
Time::DAYS_INTO_WEEK[day_of_week.downcase.to_sym]
Time::DAYS_INTO_WEEK.to_a.select{|k, v| v == start_day }.first.first.to_s.capitalize