站長資訊網
        最全最豐富的資訊網站

        怎么通過PHP判斷指定月份共有幾天

        在上一篇文章《php循環學習十:判定水仙花數,打印全部水仙花數》中,我們介紹了判定水仙花數,并使用for循環輸出全部水仙花數的方法。這次我們來看看日期時間,介紹一下使用PHP怎么獲得某年、某月的最大天數。

        本文的主題是:給定一個年份和月份,判斷該月份共有幾天。

        我們都知道一年月份的最大天數分4種情況:

        • 大月:31天;

        • 小月:30天;

        • 閏年2月:29天

        • 平年2月:28天

        而每年固定1、3、5、7、8、10、12月份為大月,而4、6、9、11月份為小月。

        所以我們可以使用選擇控制語句switch case來進行一個判斷選擇:

        當月份$month為1、3、5、7、8、10、12則輸出31;當$month為4、6、9、11則輸出30。代碼可以這樣寫:

        switch($month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: 	echo "$month 月共有31天";break; case 4: case 6: case 9: case 11: 	echo "$month 月共有30天";break; }

        測試一下:

        $month=1,則會輸出:

        怎么通過PHP判斷指定月份共有幾天

        $month=4,則會輸出:

        怎么通過PHP判斷指定月份共有幾天

        說明:switch 語句會根據表達式的值,依次與 case 中的值進行比較,如果不相等,繼續查找下一個 case;如果相等,就會執行對應的語句,直到 switch 語句結束或遇到 break 為止。

        OK,大月和小月的判斷還是很簡單的,就剩下一個2月了,計算2月的天數,首先需要判斷該年是不是閏年。我們可以使用下面一個函數來實現:(具體可以閱讀文章《PHP如何輸出20世紀的所有閏年》)

        function IsLeapYear($year){    return ($year % 400 == 0 || $year % 4 == 0 && $year % 100 != 0); }

        如果給定年份是閏年則會返回true或1,如果不是閏年(是平年)則返回false或0。

        然后在switch case語句中調用IsLeapYear($year)函數來進行判斷:

        case 2: 	echo IsLeapYear($year)? "$month 月共有29天" : "$month 月共有28天";break;

        三元運算符

        表達式1?表達式2:表達式3

        表示:如果條件“表達式1”成立,則執行語句“表達式2”,否則執行“表達式3”。

        我們還可以加一個default分支,用來在用戶輸入除1~12月份的數時,進行提醒:

        default:echo '輸入錯誤,請輸入1-12之間的數';break;

        好了,將上面的代碼封裝為一個功能函數:

        function IsLeapYear($year){    return ($year % 400 == 0 || $year % 4 == 0 && $year % 100 != 0); } function GetMaxDay($year,$month) { 	switch($month){ 	case 1: 	case 3: 	case 5: 	case 7: 	case 8: 	case 10: 	case 12: 		echo "$year 年 $month 月共有31天<br>";break; 	case 4: 	case 6: 	case 9: 	case 11: 		echo "$year 年 $month 月共有30天<br>";break; 	case 2: 		echo IsLeapYear($year)? "$year 年  $month 月共有29天<br>" : "$year 年  $month 月共有28天<br>";break; 	default:echo '輸入錯誤,請輸入1-12之間的數<br>';break; 	} }

        調用GetMaxDay($year,$month)函數:

        GetMaxDay(2000,2); GetMaxDay(2001,2); GetMaxDay(2001,3); GetMaxDay(2001,4);

        我們來看看輸出結果:

        怎么通過PHP判斷指定月份共有幾天

        可以看出,因為2000年是閏年,所以2月共有29天;2001年是平年,所以2月共有29天。而3月是大月,所以有31天;4月是小月,所以有30天。

        好了就說到這里了,有其他想知道的,可以點擊這個哦。→ →php視頻教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 欧美亚洲日本久久精品| 午夜精品久久久久久毛片| 无码AⅤ精品一区二区三区| 久久91精品久久91综合| 日韩精品极品视频在线观看免费 | 国产福利电影一区二区三区久久久久成人精品综合| 亚洲精品无码久久毛片| 国内精品久久久久久久涩爱| 久久久久国产精品| jizzjizz国产精品久久| 久久亚洲日韩精品一区二区三区| 久久久精品日本一区二区三区| 911亚洲精品不卡| 国产成人精品免费视频大全麻豆| 香蕉久久夜色精品升级完成| 青青草97国产精品免费观看| 国产精品麻豆入口| 四虎精品影院永久在线播放| 国产91久久精品一区二区| 国产精品对白刺激久久久| 精品福利视频一区二区三区| 无码精品久久久久久人妻中字| 亚洲精品国产高清不卡在线| 欧美国产成人精品一区二区三区| 国产精品欧美一区二区三区| 成人免费精品网站在线观看影片| 日本精品久久久中文字幕| 欧美精品国产日韩综合在线| 欧美精品华人在线| 久久国产精品久久久| 日本精品中文字幕| 91av国产精品| 国产精品手机在线观看你懂的 | 国内精品九九久久久精品| 精品日韩亚洲AV无码一区二区三区| 少妇人妻偷人精品视频| 免费精品无码AV片在线观看| 亚洲精品一品区二品区三品区| 亚洲国产精品ⅴa在线观看| 一本色道久久88综合日韩精品| 思思久久99热免费精品6|