DateTime->yesterdayというのは需要があるのだろうか
(追記)やっぱ、十分に満たされてました。俺のバカー。
微妙に仕事絡みで、何となく欲しくて作ってみた。パッチという程大袈裟じゃないので、メソッド追加で。
{ package DateTime; sub yesterday { my $self = shift; $self = __PACKAGE__->now unless ref $self; my ( $y, $m, $d ) = split "-", $self->ymd; if ( --$d == 0 ) { if ( --$m == 0 ) { $y--; ( $m, $d ) = ( 12, 31 ); } else { my @month_days = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ); $d = $month_days[ $m - 1 ]; $d = 29 if $m == 2 && $self->is_leap_year; } } $self->set( year => $y, month => $m, day => $d ); } }
メソッド名変えてちょこっと中身も変更すればばもっと汎用的に(じゃあやれよ、俺)。あと、内部メソッドをもっとしっかり読めば、もっと簡単に書けるかもしれない。今はそこまで読む気力がないっす。