в 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