[請益] 萬年曆如果想要跨越年度有辦法嗎?!

看板PHP作者 (順)時間17年前 (2009/01/30 13:11), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
以下是在網路上看到人家所寫的PHP萬年曆 因為算是整個年度的萬年曆 但如果想要從2003年10月~~到2004年6月的萬年曆 該怎麼下手呢?! <? $y = 2003;//年 ?> <table width="100%" border="0" cellspacing="2" cellpadding="1"> <tr bgcolor="#CCFFCC"> <td align="center" colspan="4"><?echo $y." ";?></td> </tr> <tr> <? for ($m=1;$m<=12;$m++) { //月份1-12月 $aa = (++$a % 4) ? '' : '</tr><tr>'; ?> <td align="center" valign="top" bgcolor="#CC6633"> <table width="100%" border="0" cellspacing="1" cellpadding="1"> <tr> <td bgcolor="#CCCCFF" colspan="7" align="center"><?echo "$m 月";?></td> </tr> <tr align="center"> <td bgcolor="#FFCCCC"></td> <td bgcolor="#CCCCCC"></td> <td bgcolor="#CCCCCC"></td> <td bgcolor="#CCCCCC"></td> <td bgcolor="#CCCCCC"></td> <td bgcolor="#CCCCCC"></td> <td bgcolor="#CCCCCC"></td> </tr> <tr> <? for ($d=1;$d<=32;$d++) { //從1號迴圈到32號為止 if(checkdate($m,$d,$y)=="1"){ //如果是合格的日期 $b = date ("w",mktime(0,0,0,$m,$d,$y)); if($d==1){$cc = str_repeat("<td></td>",$b);} else {$cc = "";} //如果是一個月的第一天 $cc是重複<td></td>$b次否則$cc就等於空 $bb = (++$b % 7) ? '' : '</tr><tr>'; if($b==1){$bg = "#FFCCCC";} else {$bg = "#FFFFCC";} echo "$cc"."<td align=\"center\" bgcolor=\"$bg\">$d</td>"."$bb"; } else{break;} } ?> </table> <? echo "</td>$aa"; } ?> </tr> </table> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.221.166.118

01/30 18:22, , 1F
建議用Calendar物件 ??
01/30 18:22, 1F

01/31 02:44, , 2F
萬年曆表面上有規則,比如四年一閏,百年不閏,四百又閏
01/31 02:44, 2F

01/31 02:44, , 3F
但其實裏面還有政治,比如和某羅馬大帝名字相沖就改曆
01/31 02:44, 3F

01/31 02:45, , 4F
細究起來它的文化很複雜,包含歷史而不只天文..
01/31 02:45, 4F

01/31 02:45, , 5F
要正確的話...抓完BUG建表速查最快 XD
01/31 02:45, 5F

01/31 15:35, , 6F
我以前也想自己寫, 可是後來發現 Yahoo! UI 實在是太
01/31 15:35, 6F

01/31 15:36, , 7F
01/31 15:36, 7F
文章代碼(AID): #19Wem9HI (PHP)
文章代碼(AID): #19Wem9HI (PHP)