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

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

        在上一篇文章《php循環(huán)學習十:判定水仙花數,打印全部水仙花數》中,我們介紹了判定水仙花數,并使用for循環(huán)輸出全部水仙花數的方法。這次我們來看看日期時間,介紹一下使用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 中的值進行比較,如果不相等,繼續(xù)查找下一個 case;如果相等,就會執(zhí)行對應的語句,直到 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”成立,則執(zhí)行語句“表達式2”,否則執(zhí)行“表達式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號
        主站蜘蛛池模板: 国产99久久久国产精品~~牛| 国产福利精品视频自拍| 久久se精品一区二区| 中文字幕久久精品| 国产一级精品高清一级毛片| 国产精品爽爽va在线观看网站| 日韩人妻精品无码一区二区三区| 青草青草久热精品视频在线观看| 99久久精品免费看国产免费| 国产精品视频一区二区三区经| 精品久久久久香蕉网| 亚洲AV永久无码精品网站在线观看 | 国产精品对白刺激久久久| 亚洲视频在线精品| 无翼乌无遮挡全彩老师挤奶爱爱帝国综合社区精品| 国产精品性爱| 国产精品理论片在线观看| 91午夜精品亚洲一区二区三区 | 久久91精品久久91综合| 国产精品免费高清在线观看| 亚洲欧洲成人精品香蕉网| 日韩精品人妻系列无码专区 | 精品人妻无码一区二区色欲产成人| 亚洲国产精品激情在线观看| 久久精品国产WWW456C0M| 久久99亚洲综合精品首页| 精品多毛少妇人妻AV免费久久| 国产亚洲精品拍拍拍拍拍| 国产午夜精品久久久久九九电影| 国产精品无码免费播放| 国模精品一区二区三区| 欧美精品成人3d在线| 亚洲国产精品一区二区三区久久 | 欧美精品xxxxbbbb| 欧美人与性动交α欧美精品| 亚洲第一永久AV网站久久精品男人的天堂AV | 日产精品一线二线三线芒果| 嫩草伊人久久精品少妇AV| 国产精品乱码高清在线观看| 99精品在线观看| 中国精品videossex中国高清|