Home  >  Article  >  Backend Development  >  [Repost]PHP Century Perpetual Calendar_PHP Tutorial

[Repost]PHP Century Perpetual Calendar_PHP Tutorial

WBOY
WBOYOriginal
2016-07-21 15:59:35706browse

//世纪万年历
#这是唯一的设置-请输入php文件的位置
$file="http://192.168.1.168/php/rl/s2m.php";
//#农历每月的天数
$everymonth=array(
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","甲","乙","丙","丁","戊","己","庚","辛","壬","癸"); 
#农历地支 
$mtwelve=array("null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)", 
               "巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)"); 
#农历月份 
$mmonth=array("闰","正","二","三","四","五","六", 
              "七","八","九","十","十一","十二","月"); 
#农历日 
$mday=array("null","first day","second day","third day","fourth day","fifth day","sixth day","seventh day","eighth day"," "Ninth day", "Tenth day", "Eleventh", "Twelfth", "Thirteenth", "Fourteenth", "Fifteenth", "Sixteenth", "Seventeenth", "Eighteenth" ","Nineteen","Twenty", "Twenty-one","Twenty-two","Twenty-three","Twenty-four","Twenty-five","Twenty-six","Twenty-seven", "Twenty-eight", "Twenty-nine", "Thirty");
#############################
#Assign initial value
#天干地 branch
$ten=0;
$twelve=0;
#week
$week=5;
#lunar day
$md=0;
#Lunar month
$mm=0;
#Total number of days in solar calendar to December 21, 1900
$total=11;
#Total number of days in lunar calendar
$mtotal=0;
#############################
#Get the current date
$today=getdate();
#If there is no input, set it to today’s date
if ($year=="" or $month=="" or ($year<1901 or $year>2020)
or ($month<1 or $month>12)){
$year=$today[year];
$month=$today[mon];
}
### ###########################
# Calculate the total number of days in the Gregorian calendar to the requested date - since December 21, 1900
#First calculate the sum of years
for ($y=1901;$y<$year;$y++){
$total+=365;
if ($y%4==0) $ total ++;
}
#Add the months of the year
switch ($month){
case 12:
$total+=30;
case 11:
               $total+=31;                                                           
case 8:
$total+=31;
case 7:
$total+=30;
case 6:
$total+=31;
case 5:
           $total+=30;                                                total+=31;
case 3:
$total+=28;
case 2:
$total+=31;
}
#If it is a leap year, add one day
if ($year%4==0 and $month>2){
$total++;
}
#Calculate the day of the week on the 1st of the month by the way
$week=($total+$week)%7;
##################### #########
#Use the cumulative number of days in the lunar calendar to determine whether it exceeds the number of days in the solar calendar
$flag1=0;#Judge the conditions for jumping out of the loop
$j=0;
while ($j<=120){
$i=1;
while ($i<=13){
$mtotal+=$everymonth[$j][$i];
if ($mtotal>=$total){                                                                        🎜>          }                                                                                                                                               🎜>        $j++;                                                #
# Calculate the lunar date of the 1st of the requested month
$md=$everymonth[$j][$i]-($mtotal-$total);
#The number of days left open at the beginning of the month
$k=$week;
#Whether it spans one year
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;                                                    {
                         $dd=28;                 🎜>if ((($everymonth[$j ][0]<>0 and $i==13) or ($everymonth[$j][0]==0 and $i==12))
and $mtotal-$total<$dd ) $ty=1;
?>


Century Perpetual Calendar
 
 
 
    //打印年月抬头 
    echo "".$year."年".$month."月

n"; 
    if($ty==0) 
    { 
        echo "".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."年

"; 
    } 
    else 
    { 
        echo "".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."/".$mten[$everymonth[$j+1][14]].$mtwelve[$everymonth[$j+1][15]]."年

"; 
    } 
?> 
 
  
 
   
     
      星期日 
      星期一 
      星期二 
      星期三 
      星期四 
      星期五 
      星期六 
     
$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{ 
    //设置字符颜色 
               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++; 

?> 
   
  
 

#Complement empty lines
for ($l=1;$l<=(6-$line);$l++){
echo "n";
echo "n";
echo "n"; Print the previous month and the 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 "\n"; 
?> 
  

年份:     
  月份:month B1">






http://www.bkjia.com/PHPjc/317345.html

truehttp: //www.bkjia.com/PHPjc/317345.htmlTechArticle? //Century Perpetual Calendar#This is the only setting - please enter the location of the php file $file="http: //192.168.1.168/php/rl/s2m.php"; //#The number of days in each month of the lunar calendar$everymonth=array( 0=array(8,0,0,0,0,0,0...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
a