如何查找到目前爲止一週或一個月內的日期。如何查找到目前爲止一週或一個月內的日期
days_for_week should return 19,20,21 (assuming current date is 21st)
days_for_month should return 1..21 (assuming current date is 21st)
如何查找到目前爲止一週或一個月內的日期。如何查找到目前爲止一週或一個月內的日期
days_for_week should return 19,20,21 (assuming current date is 21st)
days_for_month should return 1..21 (assuming current date is 21st)
主動支持提供了很多有用的方法,如at_beginning_of_week,at_end_of_week,at_beginning_of_month等。
> Date.today.at_beginning_of_week
=> Mon, 20 May 2013
對於這個特殊的情況下,你可以做
> (Date.today.at_beginning_of_week..Date.today).map &:day
=> [20, 21]
同樣
> (Date.today.at_beginning_of_month..Date.today).map &:day
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
或者乾脆
> 1..Date.today.day
對於第一個,你可以使用Time.now.wday
得到當前一週的一天,然後減去會給你這一週的開始日期。
對於第二個,它更簡單,每個月以1st
開頭,對吧?
假設我在正確閱讀您的問題...
第二個很簡單:
def days_for_month
1..Date.today.day
end
首先需要一點點的算法來背到星期六工作:
def days_for_week
days = []
day = Date.today
until day.saturday?
days.unshift(day.day)
day -= 1
end
days
end
您使用的軌道? – 2013-05-21 10:03:27