frei

旧「anney's room」からブログ「frei」だけ引っ越し&残しました

眠いなかdate。

ね、眠い…。

今日はちょっとしたトラブルがあって、解決するまで調査してたら

帰宅出来たのは0時過ぎ。あうー。

でも、調査中に別の忘年会会場から食べ物持ってきてくれた同僚さん達のお陰で

お腹いっぱいで帰れたのでした。

そ、それにしても眠い。早く寝ないと。

今月は本気でイベントだらけだから、体調整えないと。

…って思いながら、この記事が気になったので、

そういやぁ、確かに不便だなぁ…と思いながら

日付指定じゃなくて、timeに対して「○日前」とかってやるには?と少し遊んでみた。

さてと、寝よっと。おやすみなさーい。

・DateUtil.pm

package 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 -w

use 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;