【Ruby】日付・時刻の使い方まとめ

おだねこ

~簡単な自己紹介~

  • 嫁と猫3匹と暮らすフルリモートの三十路SE
  • 投資・節約・副業で資産形成中
  • 現在の金融資産は約1,750万円、めざせアッパーマス層(資産3,000万円)

システム開発をしていると頻繁に日付計算を行います。

Rubyの日付・時刻の取得やフォーマット、計算の使い方をまとめました。

(投稿時点では時刻系はまだですが、そのうち追加するので・・・)

内容は随時追加していきます。

日付・時刻を取得/生成する

現在日付を取得する

puts Date.today # 例:2023-08-15

文字列から日付を生成する

puts Date.parse("2023-08-15") # 2023-08-15

数字を組み合わせて日付を生成する

puts Date.new(2023, 8, 15) # 2023-08-15

○○を取得する/フォーマット

年(year)

puts Date.parse("2023-08-15").year # 2023

月(month)

puts Date.parse("2023-08-15").month # 8

日(day)

puts Date.parse("2023-08-15").day # 15

曜日(day of week)

曜日は番号(日:0・・・土:6)で取得することになります。

期待している日本語(日月火水木金土)で取得することはできないので、配列と組み合わせて曜日を取得します。

week = ["", "", "", "", "", "", ""]
puts week[Date.parse("2023-08-15").wday] # 火

日付の加算・減算

1日前(昨日)・1日後(翌日)

puts Date.parse("2023-08-15").yesterday # 2023-08-14
puts Date.parse("2023-08-15").tomorrow  # 2023-08-16

n日前・n日後

puts Date.parse("2023-08-15").days_ago(2) # 2023-08-13

または

puts Date.parse("2023-08-15") - 2 # 2023-08-13
puts Date.parse("2023-08-15") + 2 # 2023-08-17

1月前(前月)・1月後(翌月)

puts Date.parse("2023-08-15").last_month # 2023-07-15
puts Date.parse("2023-08-15").next_month # 2023-09-15

n月前・n月後

puts Date.parse("2023-08-15").months_ago(2) # 2023-06-15

または

puts Date.parse("2023-08-15") << 2 # 2023-06-15
puts Date.parse("2023-08-15") >> 2 # 2023-10-15

月初(その月の最初の日)・月末(その月の最終日)

puts Date.parse("2023-08-15").beginning_of_month # 2023-08-01
puts Date.parse("2023-08-15").end_of_month       # 2023-08-31

以上になります。

お疲れさまでした。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


VBA

次の記事

【VBA】配列