2010-01-25 85 views
3

我能做到這一點我自己當然的,但有內置在Ruby中,或庫功能,它可以讓我做這樣的事情從單一的日期獲取日期範圍

date = Time.now 
sunday = date.week.first_day 
saturday = date.week.last_day 

感謝

+3

你問過8個問題,並沒有接受任何解答。如果答案對您有所幫助,請點擊答案左側的勾號接受答案。謝謝! – 2010-01-25 17:27:36

回答

6

使用ActiveSupport寶石。但是,它認爲星期一是本週的開始。

require 'active_support' 
d = Date.today      # => Mon, 25 Jan 2010 
sun = d.beginning_of_week - 1.day # => Sun, 24 Jan 2010 
sat = d.end_of_week - 1.day  # => Sat, 30 Jan 2010 

需要更多的工作,如果今天是星期天

def week_ends(date) 
    sun = date.beginning_of_week - 1.day 
    sat = date.end_of_week - 1.day 
    if date.sunday? 
    sun += 1.week 
    sat += 1.week 
    end 
    [sun, sat] 
end 

p d = Date.today 
p week_ends(d) 

p d = Date.yesterday 
p week_ends(d) 

結果

Mon, 25 Jan 2010 
[Sun, 24 Jan 2010, Sat, 30 Jan 2010] 
Sun, 24 Jan 2010 
[Sun, 24 Jan 2010, Sat, 30 Jan 2010] 
+0

完美,非常感謝 – blogofsongs 2010-01-25 21:32:13

0

天由0..6表示,星期日爲一週中的0

date = Time.now 
puts date.wday 

將輸出各國號碼。

你想完成什麼?

加上或減去一天你到不同的日期正好是1日從現在的秒數。

date = Time.now 
puts date + 86400 #will be tomorrow 
+0

這些問題明確要求創業板精簡此操作(以及類似操作)的可視化表示。這並沒有真正回答他的問題。 – 2010-01-25 21:26:26

+0

你有沒有發現客戶真的不知道他想要什麼(不是專指你,blogofsongs) – 2010-01-26 00:21:27