Heim >Backend-Entwicklung >PHP-Problem >So ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat

So ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat

青灯夜游
青灯夜游Original
2021-08-16 13:10:233042Durchsuche

Im vorherigen Artikel „php-Schleife lernen zehn: Bestimmen Sie die Anzahl der Narzissen und drucken Sie die Anzahl aller Narzissen aus“ haben wir die Methode zur Bestimmung der Anzahl der Narzissen und die Verwendung einer for-Schleife zur Ausgabe der Anzahl aller Narzissen vorgestellt. Dieses Mal werfen wir einen Blick auf Datum und Uhrzeit und stellen vor, wie man mit PHP die maximale Anzahl von Tagen in einem bestimmten Jahr oder Monat erhält.

Das Thema dieses Artikels ist: Bestimmen Sie anhand eines Jahres und eines Monats, wie viele Tage der Monat hat.

Wir alle wissen, dass die maximale Anzahl von Tagen in einem Monat in 4 Situationen unterteilt ist:

  • Großer Monat: 31 Tage;

  • Kleiner Monat: 30 Tage;

  • Schaltjahr Februar: 29 Tage

  • Februar in gewöhnlichen Jahren: 28 Tage

Und jedes Jahr sind Januar, März, Mai, Juli, August, Oktober und Dezember als große Monate festgelegt, während April, Juni, September und November klein sind Monate.

Wir können also die Auswahlkontrollanweisung switch case verwenden, um eine Urteilsauswahl zu treffen: 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,则会输出:

So ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat

$month=4,则会输出:

So ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat

说明: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)
Wenn der Monat $month 1, 3, 5, 7, 8 ist, 10, 12 gibt 31 aus; wenn $month 4, 6, 9 oder 11 ist, wird 30 ausgegeben. Der Code kann wie folgt geschrieben werden:

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

Testen Sie es:

Wenn $month=1 ist, wird Folgendes ausgegeben: So ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat

So ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat

Wenn $month=4, wird es ausgegeben : So ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat

🎜 Hinweis: Die Switch-Anweisung vergleicht sie entsprechend dem Wert des Ausdrucks. Wenn sie nicht gleich sind, wird mit der Suche nach dem nächsten Fall fortgefahren ausgeführt werden, bis die Switch-Anweisung endet oder eine Unterbrechung auftritt. 🎜🎜OK, die Beurteilung der großen und kleinen Monate ist immer noch sehr einfach. Um die Anzahl der Tage im Februar zu berechnen, müssen Sie zunächst beurteilen, ob das Jahr ein Schaltjahr ist . Um dies zu erreichen, können wir die folgende Funktion verwenden: (Einzelheiten finden Sie im Artikel „Wie PHP gibt das 20. Jahrhundert aus. Alle Schaltjahre🎜》)🎜rrreee🎜Wenn das angegebene Jahr ein Schaltjahr ist, wird true oder 1 zurückgegeben. Wenn es kein Schaltjahr ist (es ist ein gewöhnliches Jahr), wird false oder zurückgegeben 0. 🎜🎜Dann rufen Sie die Funktion IsLeapYear($year) in der Switch-Case-Anweisung auf, um ein Urteil zu fällen: 🎜🎜rrreee
🎜Der ternäre Operator🎜🎜rrreee🎜 bedeutet: Wenn die Bedingung „Ausdruck 1 " Wenn es eingerichtet ist, führen Sie die Anweisung „Ausdruck 2“ aus, andernfalls führen Sie „Ausdruck 3“ aus. 🎜
🎜Wir können auch einen Standardzweig hinzufügen, um den Benutzer daran zu erinnern, wenn er eine andere Zahl als 1 bis 12 Monate eingibt: 🎜rrreee🎜Okay, kapseln Sie den obigen Code in eine funktionale Funktion: 🎜rrreee🎜 Rufen Sie den auf GetMaxDay($year,$month)-Funktion: 🎜🎜rrreee🎜Werfen wir einen Blick auf die Ausgabe: 🎜🎜🎜🎜🎜🎜Da 2000 ein Schaltjahr ist, sind es im Februar 29 Tage 2001 ist ein gewöhnliches Jahr, der Februar hat also 29 Tage. März ist ein großer Monat, also hat er 31 Tage; April ist ein kleiner Monat, also hat er 30 Tage. 🎜🎜Okay, das ist alles. Wenn Sie noch etwas wissen möchten, können Sie hier klicken. → →🎜php-Video-Tutorial🎜🎜

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie mit PHP, wie viele Tage ein bestimmter Monat hat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn