[Perl] 日付から第何何曜日かを計算して取得する

年月日から、月の第何何曜日であるかを計算しつ取得するPerlサブルーチンです。グダグダなスクリプトなのは、ブログの表示上ということでご勘弁を。

[サブルーチン]

sub getwday {

my ($wyear, $wmonth, $wday, $whour) = @_;

if (($wmonth eq “00”) or ($wmonth eq “01”) or ($wmonth eq “0”) or ($wmonth eq “1”)) {

$wyear = $wyear – 1;

$wmonth = $wmonth + 12;

}

my $getday = int($wyear + int($wyear / 4) – int($wyear / 100) + int($wyear / 400) + int((13 * $wmonth + 8) / 5) + $wday) % 7;

my $getweek = int(($wday – 1) / 7) + 1;

return ($getday, $getweek);

}

1;

 

[サブルーチン呼び出し]

my $year = “2017”;

my $month = “9”; #my $month = “09” でも良い

my $day = “11”;

my ($sevenday, $thweek) = getwday ($year, $month, $day);

曜日を数値化したもの(日曜日が”0″, 月曜日が”1″, … , 土曜日が”6″)が$sevendayに、$thweekに月の第何週かが数値として返ってきます。

この数値を使って”第何何曜日”と表現したければ、サブルーチンを呼び出すスプリプトに

my @kanjiday = (‘日’, ‘月’, ‘火’, ‘水’, ‘木’, ‘金’, ‘土’);

my $th_day = ‘第’ . $thweek . $kanjiday[$sevenday] . ‘曜日’;

とでも追加すればいいと思います。

キーワード: 年月日; 日付; 曜日; 第何週; 第何何曜日

 

あわせてどうぞ

PerlとJavascriptの連携でウェブコンテンツを表示させる方法

 

 

Comments are closed.