- 553 名前:デフォルトの名無しさん mailto:sage [2019/09/22(日) 14:55:10.69 ID:yzO2ACAf.net]
- >>521-523 Perl5
use Time::Piece; #use Data::Dump 'dump'; @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')}; if ($t and $t->strftime('%Y/%m/%d') eq $_) { do {($t0, $era) = @$_, last if $$_[0] <= $t} for @fy; if ($t0) { $nen = ($y = $t->year - $t0->year, $y ? $y + 1 : '元').'年' if $t0; $t = "$era$nen".$t->mon.'月'.$t->mday.'日'; } else { $t = 'ERROR'; } } else { $t = 'Invalid'; } print "$_: $t\n"; } 実行結果 ~ $ perl 15_521.pl 1970/01/05: 昭和45年1月5日 1990/12/31: 平成2年12月31日 2019/04/28: 平成31年4月28日 2019/05/01: 令和元年5月1日 1920/02/29: 大正9年2月29日 1912/07/29: ERROR 2019/02/29: Invalid
|

|