■ DateTime
use DateTime; my $dt = DateTime->today; print $dt->ymd; print $dt->add(months => +1)->ymd;
■ Time::Piece (内部でDatetimeがrequireされているもよう)
http://d.hatena.ne.jp/naoya/20051031/1130710931
#!/usr/local/bin/perl use strict; use warnings; use Time::Piece; my $lt = localtime; printf "%s %s?n", $lt->ymd('/'), $lt->hms;
■ Date::Pcalc
Perlしか使えない環境なら(Pure Perl)モジュールを使用する
使いやすくもあるので個人的にはおすすめ。
use Date::Pcalc; my($t_year,$t_month,$t_day) = &Date::Pcalc::Today(); my($hour,$min,$sec) = &Date::Pcalc::Now(); my($year,$month,$day, $hour,$min,$sec) = &Date::Pcalc::Today_and_Now(); my $datetime=sprintf("%04d%02d%02d%02d%02d%02d",$year,$month,$day, $hour,$min,$sec);
ある日(2008/12/10)の2ヶ月後の日付を求めるには
my($t_year,$t_month,$t_day) = &Date::Pcalc::Add_Delta_YMD(2008,12,10, 0,2,0);
ある日(2008/12/10)の60日後の日付を求めるには
my($t_year,$t_month,$t_day) = &Date::Pcalc::Add_Delta_YMD(2008,12,10, 0,0,60);
曜日の数字を求めるには・・・・・
my $dow = &Date::Pcalc::Day_of_Week(&Date::Pcalc::Today()); #1〜7の数が返る my $dow = &Date::Pcalc::Day_of_Week($year,$month,$day); my $youbi = ('dummy', '月', '火', '水', '木', '金', '土', '日' )[$dow]; # 曜日を取得
日付の比較(どちらの日付が古いか?)を行うには
my $days = Date_to_Days($year,$month,$day) my $days2 = Date_to_Days($year2,$month2,$day2) if ( $days < $days2 ){ 'days2の方が新しい日付です'; }
Date::Pcalcのマニュアル↓
http://search.cpan.org/dist/Date-Pcalc/Pcalc.pm
■ Date::Simple (非XS環境では自動的にpureperl版を呼び出すもよう?)
文字通り超シンプルでわかりやすい。
http://search.cpan.org/search?query=date%3A%3ASimple+&mode=all
日本語訳:http://perldoc.jp/docs/modules/Date-Simple-2.03/Simple.pod
use Date::Simple; my $today = Date::Simple->new(); my $tommorow = $today->next; my $yesterday = $today->prev; # 曜日の出力 print(('Sun','Mon','Tues','Wednes','Thurs','Fri','Satur')[$today->day_of_week]);
ただし
Date::Simpleは、時分秒、時間帯は取り扱いません。
です。