이전 글 "php 루프 학습 10: 수선화의 수를 구하고 모든 수선화의 수를 출력합니다"에서는 수선화의 수를 구하고 for 루프를 사용하여 모든 수선화의 수를 출력하는 방법을 소개했습니다. 이번에는 날짜와 시간을 살펴보고 PHP를 사용하여 특정 연도 또는 월의 최대 일수를 구하는 방법을 소개하겠습니다.
이 기사의 주제는 다음과 같습니다. 연도와 월이 주어지면 해당 월의 일수를 구합니다.
우리 모두는 한 달의 최대 일수가 4가지 상황으로 나누어진다는 것을 알고 있습니다.
큰 달: 31일
작은 달: 30일
윤년 2월: 29일 days
평년의 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
,则会输出:
当$month=4
,则会输出:
说明: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天
";break; case 4: case 6: case 9: case 11: echo "$year 年 $month 月共有30天
";break; case 2: echo IsLeapYear($year)? "$year 年 $month 月共有29天
" : "$year 年 $month 月共有28天
";break; default:echo '输入错误,请输入1-12之间的数
';break; } }
调用GetMaxDay($year,$month)
월 $month
가 1, 3, 5, 7, 8일 때 10, 12는 31을 출력하고, $month
가 4, 6, 9, 11이면 30을 출력합니다. 코드는 다음과 같이 작성할 수 있습니다:
GetMaxDay(2000,2); GetMaxDay(2001,2); GetMaxDay(2001,3); GetMaxDay(2001,4);
테스트해 보세요:
$month=1
이면 다음이 출력됩니다:
IsLeapYear($year)
함수를 호출하여 판단합니다. 🎜🎜rrreee🎜삼항 연산자🎜🎜rrreee🎜의 의미: 조건이 "표현식 1인 경우" " 성립되면 "수식 2"문을 실행하고, 그렇지 않으면 "수식 3"을 실행합니다. 🎜🎜1~12개월 이외의 숫자를 입력할 때 사용자에게 상기시키기 위해 기본 분기를 추가할 수도 있습니다. 🎜rrreee🎜좋아요, 위 코드를 기능적 함수로 캡슐화하세요. 🎜rrreee🎜
를 호출하세요 GetMaxDay($year,$month)
함수: 🎜🎜rrreee🎜출력을 살펴보겠습니다. 🎜🎜🎜🎜🎜🎜2000년은 윤년이므로 2월의 날이 29일임을 알 수 있습니다. ; 2001년은 평년이므로 2월은 29일이다. 3월은 큰 달이므로 31일이 있고, 4월은 작은 달이므로 30일이 있습니다. 🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 비디오 튜토리얼🎜🎜위 내용은 PHP를 통해 특정 달의 일수를 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!