上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

perl の日付関連のいろいろ

よく忘れるのでメモもかねて。

最近よく使っているのは、Date::Calc です。
ぐぐれば使い方はいっぱいでてきますが、このへんがわかりやすいかな。よく使うのなら、この程度でいいかなと思います。

# 今日の年月日
($year,$month,$day) = Today([$gmt]);


# 今の時間
($hour,$min,$sec) = Now([$gmt]);


# 今の時間を日付
($year,$month,$day, $hour,$min,$sec) = Today_and_Now([$gmt]);


# 今年
# 時々年だけ取得したいときあるから便利かも。
$year = This_Year([$gmt]);


# その月の最後の日までが、1月1日から何日あるか
$days = Days_in_Year($year,$month);


# その月の最後の日(その月が何日あるか)
$days = Days_in_Month($year,$month);


# その年の週の数
$weeks = Weeks_in_Year($year);


# うるう年かどうか うるう年なら 1
# check_date で 2/29 を調べればいいじゃんと思ってた自分はバカ。
leap_year($year);


# 日付が存在するかどうか 存在したら 1
check_date($year,$month,$day);


# 時間が存在するかどうか 存在したら 1
check_time($hour,$min,$sec);


# 1月1日から何日経ったか。さっきおもいっきり自力実装して涙目。
$doy = Day_of_Year($year,$month,$day);
#その年の最後の日ならこんな感じ。
$doy = Day_of_Year($year,12,31);


# A.D.1年1月1日からの日数 なかなか熱い。グレゴリオ暦です。
$days = Date_to_Days($year,$month,$day);


# 曜日を取得。月曜日が1で日曜日が7
$dow = Day_of_Week($year,$month,$day);


# 日付の差分
$Dd = Delta_Days($year1,$month1,$day1, $year2,$month2,$day2);


# 時間の差分
($Dd,$Dh,$Dm,$Ds) = Delta_DHMS($year1,$month1,$day1, $hour1,$min1,$sec1, $year2,$month2,$day2, $hour2,$min2,$sec2);


# 日付の差分だが、年月日まで分けてくれる
($Dy,$Dm,$Dd) = Delta_YMD($year1,$month1,$day1, $year2,$month2,$day2);


# 時間の差分だが、年月日まで分けてくれる
($D_y,$D_m,$D_d, $Dh,$Dm,$Ds) = Delta_YMDHMS($year1,$month1,$day1, $hour1,$min1,$sec1, $year2,$month2,$day2, $hour2,$min2,$sec2);


# ○日後を出してくれる マイナスもいけます。
($year,$month,$day) = Add_Delta_Days($year,$month,$day, $Dd);


# ○年○月後を出してくれる マイナスもいけます。
# うるう年はよしなに計算してくれる模様。
# 定期券の計算に使いたい(違
($year,$month,$day) = Add_Delta_YM($year,$month,$day, $Dy,$Dm);


# ○年○月○日後を出してくれる マイナスもいけます。
($year,$month,$day) = Add_Delta_YMD($year,$month,$day, $Dy,$Dm,$Dd);


# 指定した日時をunixtimeにしてくれる。ただしシステムに依存するぽい
$time = Mktime($year,$month,$day, $hour,$min,$sec);


# イースターがいつか教えてくれる
# 1583年から2299年のを取得できるようです。
($year,$month,$day) = Easter_Sunday($year);


# 月の英語での言い方をよしなに数値に変換してくれるらしい。
$month = Decode_Month($string)
# たとえば9月なら以下の書き方が通用する。大文字小文字の差はなさげ。
$month = Decode_Month("s");
$month = Decode_Month("Sep");
$month = Decode_Month("septemb");
$month = Decode_Month("September");
# 日本語でどう言うかってのも実装したら楽しそうw



まだ他にもあるので、詳細は CPAN のとこ読めばいいと思います。
うーん、これはもっと早くに知っておきたかった…。
自分で実装して後悔したものがたーくさん。。。

コメントの投稿

非公開コメント

最近の記事
Ad
通販サイト
ニッセン

AMO'S STYLE オフィシャルサイト

チケットぴあ

じゃらんnet

マカフィー・ストア

ポストイット オンラインプリント i-Note

ブログ内検索
RSSフィード
最近のコメント
カテゴリ