とりあえず復活。今日は夜勤だし。
そんなわけでリハビリにこんなプログラムを打っていた。
単純に今日の「干支」を出すだけのPerlプログラム。

#!/usr/bin/perl
# 干支日算出プログラム by mezzo forte
# http://www.mezzo.jp/

 
my ($sec,$min,$hour,$day,$mon,$year) = localtime(time);
$year += 1900;
$mon += 1;
$jdy = $year;
$jdm = $mon;
$nengo = "平成";
$gengo = $year - 1988;
 
if ($jdm <= 2){     $jdy -= 1; $jdm += 12;   # 1,2月は前年の13,14月と計算
}
$total_y = int ($jdy * 365.25) + int ($jdy / 400) - int ($jdy / 100);
$total_m = int (30.59 * ($jdm - 2));
$mjd = $total_y + $total_m + $day - 678912;   # フリーゲルの公式
 
@kan = ('甲','乙','丙','丁','戊','己','庚','辛','壬','癸');
@shi = ('寅','卯','辰','巳','午','未','申','酉','戌','亥','子','丑');
$kan_num = $mjd % 10;
$shi_num = $mjd % 12;   # 修正ユリウス日より干支の引数を算出
print <<"HTML"; Content-type: text/html; charset=euc-jp   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <title>干支</title> </head> <body> 今日は$nengo$gengo年$mon月$day日、$kan[$kan_num]$shi[$shi_num]です。 </body> </html> HTML exit;

 
最初から作るのはめどいのでいろいろ検索して探し回ったが、どれも自分の思うような動作をしてくれないので、結局ウィキペディアの「ユリウス通日」とか参照しながら1から作成。
動作はこんな感じ。何に使うかはナイショ。ていうか、ここまで細かく作る必要は全くなかったのだが…

干支の算出方法とか調べるのも合わせて小1時間ででっち上げたプログラムなので、自由に改変も再利用もおkですが、コメント残したりリンクとか貼ってもらえるとうれしいかも。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)