package date; use strict; sub new { my $class=shift; my $time=shift; if (!$time) {$time=time;} my ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime($time); $mon++; $year+=1900; my $res={ sec=>$sec , min=>$min ,hour =>$hour, mday=>$mday,mon=>$mon ,year=>$year,wday=>$wday}; bless $res,$class; } sub format{ # example : $d->format("yyyy/MM/dd hh:mm:ss"); my $t=shift; my $f=shift; $f =~ s/y+/&setLength($t->{year},length($&))/eg; $f =~ s/M+/&setLength($t->{mon},length($&))/eg; $f =~ s/d+/&setLength($t->{mday},length($&))/eg; $f =~ s/h+/&setLength($t->{hour},length($&))/eg; $f =~ s/m+/&setLength($t->{min},length($&))/eg; $f =~ s/s+/&setLength($t->{sec},length($&))/eg; $f; } sub setLength { my $t=shift; my $n=shift; if (length($t)>$n) { return substr($t,length($t)-$n); } while (length($t)<$n) { $t="0$t"; } $t; } 1;