二〇〇四年 葉月 廿九日 日曜日■ 日付を漢字表示にするには [/this_blog/blosxom]この記事は書かれてから1年以上経過しています。内容が古くなっている可能性があります。コメントの受付は終了しました。 まず、以下のような連想配列を用意する。 %day2ja = ( Mon=>'月', Tue=>'火', Wed=>'水', Thu=>'木', Fri=>'金', Sat=>'土', Sun=>'日' ); %month2ja = ( Jan=>'睦月', Feb=>'如月', Mar=>'弥生', Apr=>'卯月', May=>'皐月', Jun=>'水無月', Jul=>'文月', Aug=>'葉月', Sep=>'長月', Oct=>'神無月', Nov=>'霜月', Dec=>'師走' ); %num2ja = ( 0=>'〇', 1=>'一', 2=>'二', 3=>'三', 4=>'四', 5=>'五', 6=>'六', 7=>'七', 8=>'八', 9=>'九' ); 次に、nice_date サブルーチンを以下のように変更。 my($unixtime) = @_; my $c_time = ctime($unixtime); my($dw,$mo,$d1,$d2,$y1,$y2,$y3,$y4) = ( $c_time =~ /(\w{3}) +(\w{3}) +(\d?)(\d) +\d{2}:\d{2}:\d{2} +(\d)(\d)(\d)(\d)$/ ); $dw = $day2ja{$dw} . '曜日'; $mo = $month2ja{$mo}; my $da = ''; if ( $d1 eq 1 ) { $da .= '十'; } elsif ( $d1 eq 2 ) { $da .= '廿'; } elsif ( $d1 eq 3 ) { $da .= '卅'; } $da .= $num2ja{$d2} unless $d2 eq 0; $da .= '日'; my $yr = $num2ja{$y1} . $num2ja{$y2} . $num2ja{$y3} . $num2ja{$y4} . '年'; return ($dw,$mo,$da,$yr); 私は perl 初心者なので、もっといいやり方があるかもしれない。本当はプラグインにすればいいのだろうけれど、自分が使えるようにするので精いっぱい。それでもコピーして使いたいという奇特な人は、ご自由に使ってください。 関連記事: ・日付を漢字表示にする [/this_blog/perl] |
カテゴリ
[/language] (98) 最新記事
◇ パスワードについてのあなたの常識はもはや非常識かもしれない・その1 [/links] |