Как рассчитать день недели даты в ruby?
Как рассчитать день недели даты в ruby? Например, 28 октября 2010 года = четверг
9 ответов:
я использовал это, потому что я ненавидел идти в Date docs, чтобы посмотреть синтаксис strftime, не находя его там и запоминая его в документах времени.
require 'date' class Date def dayname DAYNAMES[self.wday] end def abbr_dayname ABBR_DAYNAMES[self.wday] end end today = Date.today puts today.dayname puts today.abbr_dayname
посмотри ссылка на класс даты. Если у вас есть объект даты, вы можете просто сделать
dateObj.strftime('%A')
на весь день, илиdateObj.strftime('%a')
для сокращенного дня. Вы также можете использоватьdateObj.wday
для целочисленного значения дня недели, и использовать его, как вы считаете нужным.
Ну, я никогда не кодировал в ruby, но быстрый google дает
time = Time.at(time) # Convert number of seconds into Time object. puts time.wday # => 0: Day of week: 0 is Sunday
быстрый, грязный и удобный для локализации:
days = {0 => "Sunday", 1 => "Monday", 2 => "Tuesday", 3 => "Wednesday", 4 => "Thursday", 5 => "Friday", 6 => "Saturday"} puts "It's #{days[Time.now.wday]}"
как сказал @mway, вы можете использовать дату.strftime ("%A") на любой объект даты, чтобы получить день недели.
если повезет
Date.parse
может получить вас от строки до дня недели за один раз:def weekday(date_string) Date.parse(date_string).strftime("%A") end
это работает для теста:
weekday("October 28 of 2010") #=> "Thursday"