В Ruby 2.1.1, класс Дата имеет friday?
метод
Возвращает истинное если дата является пятницы
Во-первых, требуется date
библиотека
require 'date'
Затем создайте экземпляр новой даты с текущей датой. Вот пример
current_time = Time.now
year = current_time.year
month = current_time.month
day = current_time.day
date = Date.new(year, month, day)
date.friday?
=> true
В зависимости от кодирования предпочтений, вы можете высушить это еще больше
date = Date.new(Time.now.year, Time.now.month, Time.now.day)
=> #<Date: 2016-03-11 ((2457459j,0s,0n),+0s,2299161j)>
date.friday?
Если вы хотите решить эту проблему без булевой методы (те, которые обычно заканчиваются знак вопроса и возвращает либо true
, либо false
), например, когда вы сравниваете столбцы базы данных, вы можете использовать метод Date#wday
. Имейте в виду, что это возвращает число в диапазоне (0..6) с 0, представляющим воскресенье. Это означает, что вы хотите пройти в 5, чтобы проверить пятницу.
if date.wday == 5
// Do something
end
Кроме того, если вы работаете с рабочими часами, это может быть простой, чтобы использовать business_time
Gem
Вы также можете включать holidays
камень с business_time
.
Во-первых, установить драгоценные камни
gem install business_time
gem install holidays
Затем требуется камень
require 'business_time'
require 'holidays'
узнать, если сегодня это рабочий
Date.today.workday?
и праздник
Теперь вы можете использовать что-то вроде этого, чтобы определить, есть ли сегодня праздник
Holidays.on(date, :us).empty?
и между офисом рабочих часов
Определение рабочего времени варьируется от человека к человеку. Настроить ответ невозможно. Тем не менее, с business_time
камень, вы можете установить конфигурации
BusinessTime::Config.beginning_of_workday = "8:30 am"
BusinessTime::Config.end_of_workday = "5:30 pm"
Источники
Рубин
http://ruby-doc.org/stdlib-2.1.1/libdoc/date/rdoc/Date.html#method-i-wday
http://ruby-doc.org/stdlib-2.1.1/libdoc/date/rdoc/Date.html#method-i-friday-3F
Gems
https://github.com/bokmann/business_time
https://github.com/holidays/holidays
Спасибо, но мне нужно написать его с нуля, и мне нужно сравнить два объекта DateTime, так логическое значение мне действительно не поможет! – fardin
Что вы имеете в виду, написав с нуля? –
'date = Date.today' – steenslag