日付が何曜日、何日、年初から何日め、年初から何週めになるかを求める
#!/usr/bin/perl use warnings; use strict; use utf8; use Time::localtime; use Date::Calc qw(Day_of_Week Week_Number Day_of_Year); # Time::localtime のインスタンスを生成 my $tm = localtime; my $year = $tm->year + 1900; my $month = $tm->mon + 1; my $day = $tm->mday; # 週初めから何日目かを取得する(月曜日が第1日目) print Day_of_Week($year, $month, $day), "\n"; # 年初から第何週目かを取得する print Week_Number($year, $month, $day), "\n"; # 年初から第何日目かを取得する print Day_of_Year($year, $month, $day), "\n";
実行結果
% ./date_calc.pl 1 4 19
POSIX モジュール よりも Data::Calc の方が適切
次のページ「その年の第何週であるとか何日目であるかを知るには?」を参考にして動作させたが、返り値が期待していたものと違った。
#!/usr/bin/perl use warnings; use strict; use utf8; use POSIX qw/strftime/; # 年初から第何日目かを取得する my $day_of_year = strftime '%j', localtime; print $day_of_year, "\n"; # 年初から第何週目かを取得する my $week_of_year = strftime '%W', localtime; print $week_of_year, "\n";
実行結果
% ./day_of_week.pl 019 03