>  기사  >  백엔드 개발  >  PHP를 통해 특정 달의 일수를 확인하는 방법

PHP를 통해 특정 달의 일수를 확인하는 방법

青灯夜游
青灯夜游원래의
2021-08-16 13:10:232986검색

이전 글 "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,则会输出:

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天
";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이면 다음이 출력됩니다: PHP를 통해 특정 달의 일수를 확인하는 방법

PHP를 통해 특정 달의 일수를 확인하는 방법

$month=4일 때 출력됩니다. : PHP를 통해 특정 달의 일수를 확인하는 방법

🎜 참고: switch 문은 표현식의 값에 따라 차례로 케이스의 값과 비교합니다. 동일하면 다음 케이스를 계속 검색합니다. 스위치 문이 끝나거나 중단이 발생할 때까지 실행됩니다. 🎜🎜좋아요, 크고 작은 달의 판단은 여전히 ​​매우 간단합니다. 2월의 일수를 계산하려면 먼저 해당 연도가 윤년인지 판단해야 합니다. . 이를 달성하기 위해 다음 기능을 사용할 수 있습니다. (자세한 내용은 "How PHP는 20세기를 모두 윤년으로 출력합니다🎜》)🎜rrreee🎜해당 연도가 윤년이면 true 또는 1을 반환하고 윤년이 아닌 경우(평년) false 또는 1을 반환합니다. 0. 🎜🎜그런 다음 스위치 케이스 문의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.