今の日時から、週のはじめの日時(日曜日)を割り出したいのですが、ruby で簡単に書くのはどうするといいのでしょうか? 下記に ruby でつくったスクリプトがあるのですが、もっと簡単にできそうです。


start = Time.mktime(Time.now().strftime("%Y").to_i, 1, 1, 0, 0, 0).to_i
t = ((Time.now().strftime("%W").to_i)-1) * 7 * 86400
puts Time.at(start+t).strftime("%Y%m%d")

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2012/05/08 15:40:53
  • 終了:2012/05/15 15:45:08

回答(2件)

id:a-kuma3 No.1

a-kuma3回答回数4439ベストアンサー獲得回数18232012/05/08 15:59:06

ポイント50pt
t = Time.now

sun = t - t.wday * 24 * 60 * 60

puts "#{t} --> #{sun}"

試した結果です。
http://ideone.com/DAK0S

一応、マニュアルのリンクも貼っておきます。
http://doc.ruby-lang.org/ja/1.9.3/class/Time.html

id:Cherenkov No.2

Cherenkov回答回数1502ベストアンサー獲得回数4922012/05/08 16:20:18

ポイント50pt

http://ideone.com/2lUpS

require 'date'
t = Date.today
sun = t - t.wday #1.9.2以上なら t.prev_day(t.wday) も。
puts sun.strftime("%Y%m%d")

参考:Date - Rubyリファレンスマニュアル

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません