- 559 名前:デフォルトの名無しさん mailto:sage [2019/09/22(日) 18:17:09.14 ID:yzO2ACAf.net]
- >>521 Perl5 >>541 を少しコンパクトにしてみた
use Time::Piece; @fy = (['2019/05/01','令和'],['1989/01/08','平成'],['1926/12/25','昭和'],['1912/07/30','大正']); $$_[0] = Time::Piece->strptime($$_[0], '%Y/%m/%d') for @fy; for (qw{1970/01/05 1990/12/31 2019/04/28 2019/05/01 1920/02/29 1912/07/29 2019/02/29}) { my ($t, $t0, $era, $nen); eval {$t = Time::Piece->strptime($_, '%Y/%m/%d')}; $s = 'Invalid'; if ($t and $t->strftime('%Y/%m/%d') eq $_) { do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy; $s = 'ERROR'; if ($t0) { $nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年'; $s = "$era$nen" . $t->mon . '月' . $t->mday . '日'; } } print "$_: $s\n"; }
|

|