Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menentukan berapa hari terdapat dalam bulan tertentu melalui PHP
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:
Apabila $month=4
, ia akan mengeluarkan:
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:表达式3bermaksud: 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:
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!