2013-05-21 33 views

回答

0

主動支持提供了很多有用的方法,如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 
1

對於第一個,你可以使用Time.now.wday得到當前一週的一天,然後減去會給你這一週的開始日期。

對於第二個,它更簡單,每個月以1st開頭,對吧?

1

假設我在正確閱讀您的問題...

第二個很簡單:

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 
相關問題