[adsense]
日付の作成
# 年月日を指定し、日付を作成
d2 = Date.new(2017, 4, 30);
# 本日日付を取得
d3 = Date.today
月末日を求める
day = Date.new(2020, 2 , -1)
# => #<Date: 2020-02-29 ((2458909j,0s,0n),+0s,2299161j)>
point: newの第3引数に負の値をわたすと末日から数える。-1が末日になる。
文字列 から 日付へ変換
Date.strptime( str, format)
サンプルコード
require 'date'
begin
Date.strptime('2017-09-03', '%Y-%m-%d')
rescue ArgumentError
p "不正な日付文字列"
end
[引数]
str:変換対象の日付文字列
format:日付フォーマット
[例外]
ArgumentError:正しくない日付になる組み合わせである場合に発生します。
日付 から 文字列へ変換
val.strftime( format)
サンプルコード
require 'date'
val = DateTime.now
val.strftime('%Y-%m-%d')
[引数]
format:日付フォーマット
[adsense]
日付フォーマット (format)
フォーマット | 出力形式 |
---|---|
%A | 曜日の名称(Sunday, Monday … ) |
%a | 曜日の省略名(Sun, Mon … ) |
%B | 月の名称(January, February … ) |
%b | 月の省略名(Jan, Feb … ) |
%c | 日付と時刻 |
%d | 日(01-31) |
%H | 24時間制の時(00-23) |
%I | 12時間制の時(01-12) |
%j | 年中の通算日(001-366) |
%M | 分(00-59) |
%m | 月を表す数字(01-12) |
%p | 午前または午後(AM,PM) |
%S | 秒(00-60) (60はうるう秒) |
%U | 週を表す数。最初の日曜日が第1週の始まり(00-53) |
%W | 週を表す数。最初の月曜日が第1週の始まり(00-53) |
%w | 曜日を表す数。日曜日が0(0-6) |
%X | 時刻 |
%x | 日付 |
%Y | 西暦を表す数 |
%y | 西暦の下2桁(00-99) |
%Z | タイムゾーン |
%% | %自身 |
日付の加減算
日の加減算
require "date"
d = Date.today
# 1日後
afterDay = d + 1
# 5日前
beforeDay = d - 5
月の加減算
require "date"
d = Date.today
beforeMonth = d << 1
afterMonth = d >> 5
日付の差を求める
require "date"
d1 = Date.today
d2 = Date.new(2017, 3 ,15)
sa = d1 - d2 #差は日の単位で取れる
p "日付の差は#{sa.to_i}日です"
日付の比較
require "date"
d1 = Date.new(2018, 3 ,15)
d2 = Date.new(2017, 3 ,15)
p "d1が大きい" if d1 > d2
0 件のコメント:
コメントを投稿