Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
#!/usr/local/bin/perl binmode STDOUT; sub floor { local($_) = int($_[0]); $_ + ($_[0] >= $_ ? 0 : -1); } # get parameters if ($ENV{'REQUEST_METHOD'} eq 'POST') { sysread(STDIN, $args, $ENV{'CONTENT_LENGTH'}); } else { $args = $ENV{'QUERY_STRING'}; } foreach (split('&', $args)) { ($key, $value) = split('=', $_, 2); $value =~ tr/+/ /; $value =~ s/%(..)/pack('C', hex($1))/ge; $param{$key} = $value; } $year = $param{'year'}; # print header print "Content-Type: text/html; charset=Shift_JIS\n\n"; if ($ENV{'REQUEST_METHOD'} eq 'HEAD') { exit 0; } print '', "\n\n\n西暦 $year 年の暦\n\n", "\n\n
\n

西暦 $year 年の暦

\n
\n
\n"; if ($year <= 0 || $year ne int($year)) { print "エラー:不正な年 - $year
\n年は正の整数でなければなりません。
\n\n"; exit 0; } # nengo if (open(FILE, 'nengo.dat')) { while () { chop; ($start, $end, $eng, $jpn, $pron) = split(',', $_); if ($pron ne '' && $year >= $start && $year <= $end) { push(@japan, join('', '', $jpn, ' (', $pron, ') ', $year - $start + 1, " 年
\n")); } } close(FILE); } # shoguns if (open(FILE, 'shogun.dat')) { while () { chop; ($start, $end, $order, $gmnt, $eng, $jpn, $pron) = split(',', $_); if ($pron ne '' && $year >= $start && $year <= $end) { $gmnt =~ s/Kamakura/鎌倉/; $gmnt =~ s/Muromachi/室町/; $gmnt =~ s/Edo/江戸/; push(@japan, join('', $gmnt, '幕府第 ', $order, ' 代将軍 ', $jpn, ' (', $pron, ') の ', $year - $start + 1, " 年目
\n")); } } close(FILE); } # emperors of Japan if (open(FILE, 'emperor.dat')) { while () { chop; ($start, $end, $order, $eng, $jpn, $pron, $empress, $dynasty) = split(',', $_); if ($year >= $start && $year <= $end) { $empress =~ s/Empress/(女帝)/; $empress =~ s/the current emperor//; $dynasty =~ s/Japan \(the Southern Courts\)/南朝/; $dynasty =~ s/the Northern Courts/北朝/; push(@japan, join('', $dynasty, '第 ', $order, ' 代天皇 ', $jpn, ' (', $pron, ') 天皇', $empress, 'の ', $year - $start + 1, " 年目
\n")); } } close(FILE); } # china era if (open(FILE, 'china.dat')) { while () { chop; ($start, $end, $eng, $jpn, $pron) = split(',', $_); if ($pron ne '' && $year >= $start && $year <= $end) { push(@china, join('', '', $jpn, ' (', $pron, ') ', $year - $start + 1, " 年
\n")); } } close(FILE); } # elements and animals @elements = ('甲きのえ', '乙きのと', '丙ひのえ', '丁ひのと', '戊つちのえ', '己つちのと', '庚かのえ', '辛かのと', '壬みずのえ', '癸みずのと'); @animals = ('子ね', '丑うし', '寅とら', '卯う', '辰たつ', '巳み', '午うま', '未ひつじ', '申さる', '酉とり', '戌いぬ', '亥い'); $element = $elements[&floor($year - 1864) % 10]; $animal = $animals[&floor($year - 1864) % 12]; push(@china, join('', '', substr($element, 0, 2), ' (', substr($element, 2), ') ', '', substr($animal, 0, 2), ' (', substr($animal, 2), ') ', "の年
\n")); # presidents of the U.S. if (open(FILE, 'pusa.dat')) { while () { chop; ($start, $end, $order, $name) = split(',', $_); if ($name ne '' && $year >= $start && $year <= $end) { push(@usa, join('', '合衆国第 ', $order, ' 代大統領 ', $name, ' の ', $year - $start + 1, " 年目
\n")); } } close(FILE); } # rulers of Great Britain if (open(FILE, 'britain.dat')) { while () { chop; ($start, $end, $order, $name, $houseorder, $house, $queen, $land) = split(',', $_); if ($name ne '' && $year >= $start && $year <= $end) { $house =~ s/Line/系/; $house =~ s/House of (.*)/$1 朝/; $house =~ s/the Commonwealth/護国卿/; $land =~ s/the U.K./連合王国/; $queen =~ s/Queen/女王/; $queen =~ s/Lord Protector/護国卿/; push(@uk, join('', $land || 'イングランド', '第 ', $order, ' 代元首(', $house, '第 ', $houseorder, ' 代) ', $name, ' ', $queen || '国王', 'の ', $year - $start + 1, " 年目
\n")); } } close(FILE); } print "
\n"; if (@japan) { print "
日本:\n
"; foreach (@japan) { print; } print "
\n"; } if (@china) { print "
中国:\n
"; foreach (@china) { print; } print "
\n"; } if (@usa) { print "
アメリカ:\n
"; foreach (@usa) { print; } print "
\n"; } if (@uk) { print "
イギリス:\n
"; foreach (@uk) { print; } print "
\n"; } print "
\n"; print "
\n"; $totalleap = int(($year - 1) / 4) - int(($year - 1) / 100) + int(($year - 1) / 400); $leap = (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0); $weekday = ($year + $totalleap) % 7; @monthdays = (31, ($leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); for ($month = 1; $month <= 12; $month++) { $monthday = $monthdays[$month - 1]; $monthname = "$month 月"; print "$monthname
\n", "\n", ''; print "
', '', '', ''; for ($day = 1; $day <= $monthday; $day++) { if ($weekday == 0 || $day == 1) { print '
" if $weekday; } if ($weekday == 0) { print '', $day, ''; } elsif ($weekday == 6) { print '', $day, ''; } else { print '', $day, ''; } $weekday = ($weekday + 1) % 7; } print "
\n
\n"; } print "
\n", '


', '前の年
', "\n", '次の年
', "\n", '入力画面に戻る
', "\n", '
Copyright(C) TAKASUGI Shinji ', '(tssf.airnet.ne.jp)
', "\n\n\n"; exit 0;