Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP ตรวจสอบ Leap Year (ปีอธิกสุรทิน)

ตัวอย่างโค้ด

<?php
function year_check($my_year) {
    if ($my_year % 400 == 0) {
        echo "It is a leap year";
    } elseif ($my_year % 100 == 0) {
        echo "It is not a leap year";
    } elseif ($my_year % 4 == 0) {
        echo "It is a leap year";
    } else {
        echo "It is not a leap year";
    }
}

$my_year = 1900;
year_check($my_year);
?>

ผลลัพธ์

It is not a leap year

กฎ Leap Year (Gregorian Calendar)

  1. หาร 400 ลงตัว → Leap Year
  2. หาร 100 ลงตัว → NOT Leap Year (Exception)
  3. หาร 4 ลงตัว → Leap Year
  4. อื่นๆ → NOT Leap Year

ตารางทดสอบ

YearDiv 400Div 100Div 4Leap?
1900NoYesYesNo (Century not div 400)
2000YesYesYesYes
2024NoNoYesYes
2023NoNoNoNo
2100NoYesYesNo

Built-in Function

<?php
function is_leap_year($year) {
    return (bool)date('L', strtotime("$year-01-01"));
    // หรือ
    return checkdate(2, 29, $year);  // Feb 29 exists?
}

var_dump(is_leap_year(1900)); // false
var_dump(is_leap_year(2000)); // true
var_dump(is_leap_year(2024)); // true
?>

DateTime Class (PHP 5.2+)

<?php
$date = new DateTime("2024-02-29");
echo $date->format("Y-m-d");  // Valid

try {
    $date = new DateTime("1900-02-29");
} catch (Exception $e) {
    echo "1900-02-29 Invalid";
}
?>