Century perpetual calendar
#这是唯一的设置-Please enter the location of the PHP file
$file = "http://192.168.1.168/php/rl/s2m.php";
#农历每月的天数
$everym
0=>array (8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),
1=>array (0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),
2=>array (0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3),
3=>array (5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4),
4=>array (0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5),
5=>array (0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6),
6=>array (4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7),
7=>array (0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8),
8=>array (0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9),
9=>array (2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10),
10=>array (0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11),
11=>array (6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12),
12=>array (0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1),
13=>array (0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2),
14=>array (5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3),
15=>array (0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4),
16=>array (0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5),
17=>array (2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6),
18=>array (0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7),
19=>array (7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8),
20=>array (0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9),
21=>array (0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10),
22=>array (5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11),
23=>array (0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12),
24=>array (0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1),
25=>array (4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2),
26=>array (0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3),
27=>array (0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4),
28=>array (2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5),
29=>array (0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6),
30=>array (6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7),
31=>array (0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8),
32=>array (0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9),
33=>array (5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10),
34=>array (0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11),
35=>array (0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12),
36=>array (3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1),
37=>array (0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2),
38=>array (7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3),
39=>array (0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4),
40=>array (0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5),
41=>array (6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6),
42=>array (0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7),
43=>array (0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8),
44=>array (4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9),
45=>array (0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10),
46=>array (0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11),
47=>array (2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12),
48=>array (0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1),
49=>array (7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2),
50=>array (0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3),
51=>array (0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4),
52=>array (5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5),
53=>array (0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6),
54=>array (0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7),
55=>array (3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8),
56=>array (0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9),
57=>array (8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10),
58=>array (0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11),
59=>array (0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12),
60=>array (6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1),
61=>array (0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2),
62=>array (0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3),
63=>array (4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4),
64=>array (0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5),
65=>array (0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6),
66=>array (3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7),
67=>array (0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8),
68=>array (7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9),
69=>array (0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10),
70=>array (0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11),
71=>array (5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12),
72=>array (0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1),
73=>array (0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2),
74=>array (4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3),
75=>array (0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4),
76=>array (8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5),
77=>array (0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6),
78=>array (0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7),
79=>array (6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8),
80=>array (0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9),
81=>array (0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10),
82=>array (4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11),
83=>array (0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12),
84=>array (10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1),
85=>array (0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2),
86=>array (0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3),
87=>array (6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4),
88=>array (0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5),
89=>array (0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6),
90=>array (5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7),
91=>array (0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8),
92=>array (0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9),
93=>array (3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10),
94=>array (0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11),
95=>array (8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12),
96=>array (0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1),
97=>array (0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2),
98=>array (5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3),
99=>array (0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4),
100=>array (0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5),
101=>array (4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6),
102=>array (0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7),
103=>array (0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8),
104=>array (2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9),
105=>array (0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10),
106=>array (7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11),
107=>array (0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12),
108=>array (0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1),
109=>array (5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2),
110=>array (0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3),
111=>array (0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4),
112=>array (4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5),
113=>array (0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6),
114=>array (9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7),
115=>array (0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8),
116=>array (0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9),
117=>array (6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10),
118=>array (0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11),
119=>array (0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12),
120=>array (4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1)
);
##############################
#农历天干
$mten =array ("null", "a", "B", "C", "Ding", "e", "own", "Geng", "Xin", "Ren", "GUI");
#农历地支
$mtwelve =array ("null", "Child (Rat)", "Ugly (ox)", "Yin (Tiger)", "Mao (Rabbit)", "Chen (Dragon)",
"(Snake)", "Noon (horse)", "Not (sheep)", "Shen (Monkey)", "Unitary (chicken)", "Xu (dog)", "Hai (pig)");
#农历月份
$mm
"Seven", "eight", "Nine", "Ten", "11", "12", "month");
#农历日
$mday =array ("null", "the Junior", "Second day", "Third Day", "four", "Duanwu", "Arrest", "When初七because", "Holidays", "Penggushan", "decade",
"11", "12", "13", "14", "XV", "16", "17", "18", "19", "20",
"21", "22", "23", "24", "25", "26", "27", "28", "29", "30");
##############################
#赋给初值
#天干地支
$ten = 0;
$twelve = 0;
#星期
$week = 5;
#农历日
$MD = 0;
#农历月
$mm = 0;
#阳历总天数 to December 21, 1900
$total = 11;
#阴历总天数
$mtotal = 0;
##############################
#获得当日日期
$today =getdate ();
#如果没有输入, set as date of the day
if ($year = = "" or $m
or ($month <1 or $month >12)) {
$year = $today [year];
$m
}
##############################
#计算到所求日期阳历的总天数-from December 21, 1900
#先算年的和
for ($y =1901; $y < $year; $y + +) {
$total +=365;
if ($y%4==0) $total + +;
}
#再加当年的几个月
Switch ($month) {
Case 12:
$total +=30;
Case 11:
$total +=31;
Case 10:
$total +=30;
Case 9:
$total +=31;
Case 8:
$total +=31;
Case 7:
$total +=30;
Case 6:
$total +=31;
Case 5:
$total +=30;
Case 4:
$total +=31;
Case 3:
$total +=28;
Case 2:
$total +=31;
}
#如果当年是闰年还要加一天
if ($year%4==0 and $month >2) {
$total + +;
}
#顺便算出当月1日星期几
$week = ($total + $week)%7;
##############################
#用农历的天数累加来判断是否超过阳历的天数
$flag 1=0; #判断跳出循环的条件
$j = 0;
while ($j <=120) {
$i = 1;
while ($i <=13) {
$mtotal + = $everymonth [$j] [$i];
if ($mtotal >= $total) {
$flag 1=1;
Break
}
$i + +;
}
if ($flag 1==1) break;
$j + +;
}
##############################
#计算所求月份1号的农历日期
$MD = $everymonth [$j] [$i]-($mtotal-$total);
#月头空开的天数
$k = $week;
#是否跨越一年
Switch ($month) {
Case 1:
Case 3:
Case 5:
Case 7:
Case 8:
Case 10:
Case 12:
$DD = 31;
Break
Case 4:
Case 6:
Case 9:
Case 11:
$DD = 30;
Break
Case 2:
if ($year%4==0) {
$DD = 29;
}else{
$DD = 28;
}
Break
}
#是否跨越一年
$ty = 0;
if (($everymonth [$j][0]<>0 and $i ==13) or ($everymonth [$j][0]==0 and $i ==12))
and $mtotal-$total < $DD) $ty = 1;
?>
<title>Century perpetual calendar</title>
Print month
echo "
". $year." Year ". $month." Month
\ n ";
if ($ty ==0)
{
echo "
". $mten [$everymonth [$j][14]]. $mtwelve [$everymonth [$j][15]]." Years
";
}
Else
{
echo "
". $mten [$everymonth [$j][14]]. $mtwelve [$everymonth [$j][15]]." /". $mten [$everymonth [$j +1][14]]. $mtwelve [$everymonth [$j +1][15]]." Years
";
}
?>
Sunday |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Saturday |
$day = 1;$line = 0;while ($day <= $dd) {echo "
\ n "; for ($s =0; $s <=6; $s + +) {if ($k <>0 or $day > $dd) {echo]
| \ n "; $k--; }else{//Set character color switch ($s) {case 1:case 2:case 3:case 4:case 5: $color = "#000000"; Break Case 0: $color = "#FF0000"; Break Case 6: $color = "#008000"; Break #生成中文农历 if ($md ==1) {#1日打印月份 if ($everymonth [$j][0]<>0 and $everymonth [$j][0]< $i) {$mm = $i-1; }else{$mm = $i; if ($i = = $everymonth [$j][0]+1 and $everymonth [$j][0]<>0) $chi = $mmonth [0]. $mmonth [$mm]; #闰月 else $chi = $mmonth [$ MM]. $mmonth [13]; }else{$chi = $mday [$MD]; } echo "
$day $chi | \ n "; $day + +; $MD + +; if ($md > $everymonth [$j] [$i]) {$MD = 1; $i + +; if ($i >12 and $everymonth [$j][0]==0) or ($i >13 and $everymonth [$j][0]<>0) {$i = 1; $j + +; }}} echo "
\ n ";$line + +;}?>
#补足空行
for ($l =1; $l <= (6-$line); $l + +) {
echo "
\ n "; echo "
\ n "; echo "
A | \ n "; echo "
\ n "; echo "
\ n ";
}
#打印上一月, next month
$ly = $ny = $year;
$last = $month-1;
if ($last ==0) {
$last = 12;
$ly--;
}
$next = $month +1;
if ($next ==13) {
$next = 1;
$ny + +;
}
if ($ly >=1901)
echo "
\ n ";
Else
echo "
";
if ($ny <=2020)
echo "
\ n ";
?>
echo "
The above describes the perpetual calendar query birthday eight [reprint]php century perpetual calendar, including the calendar to inquire about the birth of the content, I hope that the PHP tutorial interested friends helpful.