Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menentukan berapa hari terdapat dalam bulan tertentu melalui PHP

Bagaimana untuk menentukan berapa hari terdapat dalam bulan tertentu melalui PHP

青灯夜游
青灯夜游asal
2021-08-16 13:10:233042semak imbas

Dalam artikel sebelumnya "pembelajaran gelung php sepuluh: tentukan bilangan narcissus, cetak nombor semua narcissus", kami memperkenalkan penentuan bilangan narcissus dan menggunakan gelung for untuk menghasilkan bilangan semua kaedah daffodil. Kali ini kita akan melihat tarikh dan masa serta memperkenalkan cara menggunakan PHP untuk mendapatkan bilangan hari maksimum dalam tahun atau bulan tertentu.

Topik artikel ini ialah: diberi tahun dan bulan, tentukan berapa hari terdapat dalam bulan itu.

Kita semua tahu bahawa bilangan hari maksimum dalam sebulan terbahagi kepada 4 situasi:

  • Bulan besar: 31 hari

  • Bulan kecil: 30 hari;

  • Februari dalam tahun lompat: 29 hari

  • Februari seperti biasa tahun: 28 hari

Setiap tahun, Januari, Mac, Mei, Julai, Ogos, Oktober dan Disember ditetapkan sebagai bulan besar, manakala April, Jun, September dan November adalah bulan kecil.

Jadi kita boleh menggunakan pernyataan kawalan pemilihan switch case untuk membuat pemilihan penghakiman:

Apabila bulan $month ialah 1, 3, 5, 7, 8, 10, 12, ia akan mengeluarkan 31 ; Apabila $month ialah 4, 6, 9, atau 11, 30 ialah output. Kod boleh ditulis seperti ini:

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;
}

Uji:

Apabila $month=1, ia akan mengeluarkan:

Bagaimana untuk menentukan berapa hari terdapat dalam bulan tertentu melalui PHP

Apabila $month=4, ia akan mengeluarkan:

Bagaimana untuk menentukan berapa hari terdapat dalam bulan tertentu melalui PHP

Penjelasan: Pernyataan suis akan dibandingkan dengan nilai dalam kes mengikut giliran berdasarkan nilai ungkapan Jika ia tidak sama, teruskan mencari kes seterusnya jika ia adalah sama, pernyataan yang sepadan akan dilaksanakan sehingga pernyataan suis tamat atau rehat ditemui.

OK, penghakiman bulan besar dan kecil masih sangat mudah. ​​Hanya tinggal satu bulan Februari untuk mengira bilangan hari dalam bulan Februari, anda perlu menilai sama ada tahun itu tahun lompat. Kita boleh menggunakan fungsi berikut untuk mencapai ini: (Untuk butiran, anda boleh membaca artikel "Bagaimana PHP mengeluarkan semua tahun lompat pada abad ke-20")

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

Jika yang diberikan tahun ialah tahun lompat, ia akan kembali benar Atau 1, jika ia bukan tahun lompat (ia adalah tahun biasa), ia mengembalikan palsu atau 0.

Kemudian panggil fungsi IsLeapYear($year) dalam pernyataan kes suis untuk membuat penghakiman:

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

Pengendali Ternary

表达式1?表达式2:表达式3

bermaksud: jika syarat "Ungkapan 1" adalah benar, laksanakan pernyataan "Ungkapan 2", jika tidak laksanakan "Ungkapan 3".

Kami juga boleh menambah cawangan lalai untuk mengingatkan pengguna apabila dia memasukkan nombor selain daripada 1 hingga 12 bulan:

default:echo '输入错误,请输入1-12之间的数';break;

Baiklah, gantikan kod di atas Encapsulated sebagai fungsi berfungsi:

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; } }

Panggil fungsi GetMaxDay($year,$month):

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

Mari kita lihat output:

Bagaimana untuk menentukan berapa hari terdapat dalam bulan tertentu melalui PHP

Dapat dilihat bahawa kerana tahun 2000 adalah tahun lompat, terdapat 29 hari pada bulan Februari 2001 adalah tahun biasa, jadi terdapat 29 hari pada bulan Februari. Mac adalah bulan yang besar, jadi ia mempunyai 31 hari; April adalah bulan yang kecil, jadi ia mempunyai 30 hari.

Itu sahaja jika anda ingin mengetahui perkara lain, anda boleh klik ini. → →tutorial video php

Atas ialah kandungan terperinci Bagaimana untuk menentukan berapa hari terdapat dalam bulan tertentu melalui PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn