|
オリジナルのGetDateAndTimeサブルーティンは以下のようになっています。 |
|
sub GetDateAndTime
{
local ($sec, $min, $hour, $mday, $mon);
local($year, $wday, $yday, $isdst);
local ($ampm, $currentdatetime);
($sec, $min, $hour, $mday, $mon,
$year, $wday, $yday, $isdst) =
localtime(time);
$mon++;
$ampm = "AM";
$ampm = "PM" if ($hour > 11);
$hour = $hour - 12 if ($hour > 12);
if (length($min) == 1)
{
$min = "0" . $min;
}
"$mon/$mday/$year $hour:$min $ampm";
} # End of GetDateAndTime
|
|
|
年号を2000表示にする |
$year += 1900;
でも大丈夫。
同じことをしています。 |
sub GetDateAndTime
{
local ($sec, $min, $hour, $mday, $mon);
local($year, $wday, $yday, $isdst);
local ($ampm, $currentdatetime);
($sec, $min, $hour, $mday, $mon,
$year, $wday, $yday, $isdst) =
localtime(time);
$mon++;
$ampm = "AM";
$ampm = "PM" if ($hour > 11);
$hour = $hour - 12 if ($hour > 12);
if (length($min) == 1)
{
$min = "0" . $min;
}
$year = $year+1900;
"$mon/$mday/$year $hour:$min $ampm";
} # End of GetDateAndTime
|
|
|
Perl の中の$yearには1900年を0として数えた年号が入っていまので、2000年表示にするためには、1900を足す必要があります。
2000年表示にするためには、上の太字の1行を加えるだけで大丈夫です。 |
|
|
|
年号を00表示にする |
$year = $year - 100;
if ($year<=9){
$year = "0$year";
}else{$year=$year;}
でも大丈夫。
同じことをしています。
(もう少し簡潔にもなる。) |
sub GetDateAndTime
{
local ($sec, $min, $hour, $mday, $mon);
local($year, $wday, $yday, $isdst);
local ($ampm, $currentdatetime);
($sec, $min, $hour, $mday, $mon,
$year, $wday, $yday, $isdst) =
localtime(time);
$mon++;
$ampm = "AM";
$ampm = "PM" if ($hour > 11);
$hour = $hour - 12 if ($hour > 12);
if (length($min) == 1)
{
$min = "0" . $min;
}
$year = $year-100;
if ( $year == 0 ) { $year = "00"; }
elsif ( $year <= 9 ) {$year = "0"."$year"; }
else { $year = $year; }
"$mon/$mday/$year $hour:$min $ampm";
} # End of GetDateAndTime
|
|
|
00表示にするためには、100(2000年)から100を引いて、その数字が1から9の場合には冒頭に"0"を文字的な添え字として追加する必要があります。(0の場合も同じ。上の例では、0の場合は、"00"に変換している。)2010年以降(Perlの年号では、110年。100を引いて10年)は、100を引いたそのまんまで大丈夫です。($year
= $yearと、定義しておく。)もっと簡潔な書き方もあると思いますが以上の書き方が説明にそっていると思います。 |
|
|
|
BBS_FORUMの中にあるサブルーティンなんだけどなぁ。読んでてくれるかなぁ。 |
|
|
|
[Matt'sIP][Matt's削除][ログの取り方] |