眠いなかdate。
ね、眠い…。
今日はちょっとしたトラブルがあって、解決するまで調査してたら
帰宅出来たのは0時過ぎ。あうー。
でも、調査中に別の忘年会会場から食べ物持ってきてくれた同僚さん達のお陰で
お腹いっぱいで帰れたのでした。
そ、それにしても眠い。早く寝ないと。
今月は本気でイベントだらけだから、体調整えないと。
…って思いながら、この記事が気になったので、
そういやぁ、確かに不便だなぁ…と思いながら
日付指定じゃなくて、timeに対して「○日前」とかってやるには?と少し遊んでみた。
さてと、寝よっと。おやすみなさーい。
・DateUtil.pmpackage DateUtil;
use Date::Calc qw(Gmtime);
use Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(getDate);
our (@ISA, @EXPORT_OK);
my $TIME_PER_DAY = 86400;
sub new {
my $me = shift;
my $param = {
};
bless $param, $me;
}
sub getDate {
my $addDays = shift;
my $baseTime = shift || time;
return $baseTime if ! $addDays;
return Gmtime($baseTime + ($addDays * $TIME_PER_DAY));
}
1;
・test.pl
#!/usr/bin/perl -wuse strict;
use lib '/home/anigon/date';
use DateUtil qw(getDate);
my $backDays = 85;
print join "/", &getDate($backDays);
exit;
まだ改良の余地がたーんとあるけど、とりあえずメモ。
追記:
…てーか、翌日目覚めて考えたら、わざわざDate::Calc を使う必要がない事に気付く orz
やっぱり寝ぼけてたんだな…うー。
今日も既に疲れて眠いので、今日もまた寝ぼけるかも(苦笑)
・DateUtil.pm
package DateUtil;use Exporter;
@ISA = qw(Exporter);
@EXPORT_OK = qw(getDate);
our (@ISA, @EXPORT_OK);
my $TIME_PER_DAY = 86400;
sub new {
my $me = shift;
my $param = {
};
bless $param, $me;
}
sub getDate {
my $addDays = shift;
my $baseTime = shift || time;
$baseTime += $addDays * $TIME_PER_DAY if $addDays;
my @date = localtime($baseTime);
$date[4]++;
$date[5] += 1900;
return @date;
}
1;