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

Viewed: 12:28:58 in December 7, 2019

Posted: September 11, 2017
WordPressの記事をアーカイブ化したものです。

この記事を書いた人
「牧岡ふうふ堂」オーナー。博士(工学)。
酒都圏在住。
某地方の国立系工業大学でアシスタントをしていました。 専門は有機反応・金属錯体(主に希土類)・π共役系。
twitterアカウントは@makiokafufudo(お仕事用)、@ymakioka(個人用)です。

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

[サブルーチン]

sub getwday {

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

if (($wmonth eq "01") or ($wmonth eq "02") or ($wmonth eq "1") or ($wmonth eq "2")) {

$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] . "曜日";

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

 

あわせてどうぞ

アーカイブ化したWordPress記事
よく読まれている記事をアーカイブ化しました。

[読みたい論文] 紫外光吸収で起こるアミド結合開裂
これはガチで読みたい論文。

[読みたい論文] ベンジルC-Hアリール化2連チャン
久しぶりに2連チャンを見たような気がします。

[読みたい論文] 水素原子移動でシリルエノラート
これ、エステルのシリルエノラートにはできない。

重曹で洗濯物の生乾き臭を防ぐいい方法
化学にちょっと詳しい私のやり方。

[読みたい論文] 実はシリル基の種類が鍵
シリル基て、ちょっと構造が違うだけで、ね。

[読みたい論文] どっちがcisでどっちがtransかいな
エナンチオピュアて、日本語でどういうの?

[読みたい論文] トリウムでもいけるのか
錯体の安定性も気になるところ。

[読みたい論文] pKa選んでるのかなぁ
銅とピバリン酸。よく見かける組み合わせです。

[読みたい論文] カリウムイオン検出はまかせろー
イオン半径とエネルギー移動あたりかなぁ

iPhone用Twitterrificの画像を非表示にする方法
Twitterrificのタイムライン上に現れる画像を表示させない方法を紹介します。