Time::Pieceが凄い便利
ずっと、日付関連は扱ってこなかったので、
Time::Piece
が気になったままになってたけど、
来週のHokkaido.pm Casual(ATND)に向けて使う必要が出てきたので、
少しだけ調べてみました。
なんで使う必要が出てきたかというと、
任意の日付の曜日が知りたかったからなのですが、
その他にも、任意の月が何日あるのかも調べられるようです。
use v5.14; use strict; use warnings; use Time::Piece; foreach ( 1..12 ) { my $str = sprintf( '%d-%d-%d', 2014, $_, 1 ); my $t = Time::Piece->strptime( $str, '%Y-%m-%d' ); say $t->ymd(), ' : month_last_day = ', $t->month_last_day(); }
これを実行すると、こんな感じ。
$ perl aaa.pl
2014-01-01 : month_last_day = 31
2014-02-01 : month_last_day = 28
2014-03-01 : month_last_day = 31
2014-04-01 : month_last_day = 30
2014-05-01 : month_last_day = 31
2014-06-01 : month_last_day = 30
2014-07-01 : month_last_day = 31
2014-08-01 : month_last_day = 31
2014-09-01 : month_last_day = 30
2014-10-01 : month_last_day = 31
2014-11-01 : month_last_day = 30
2014-12-01 : month_last_day = 31
もう、「西向く士(さむらい)」とか思い出して、
2,4,6,9,11は31未満とか、閏年か判定したりとか、
そういうの書く必要ないですね!
ただ、strptime
の使い方が難しくって、
このページを参考にさせて貰いました。
STRPTIME
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/strptime.3.html
Time::Piece
そのものに関しては、こちらをどうぞ。
http://perldoc.jp/docs/modules/Time-Piece-1.20/Time/Piece.pod
おしまい。
Leave a Comment