PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPでうるう年かどうかを判定するプログラムの書き方

PHPでは、剰余演算子(%)を使って西暦年を400・100・4で割り、その余りを確認することで、その年がうるう年かどうかを簡単に判定できます。本記事では、具体的なサンプルコードと実行結果、そして判定ロジックの解説を紹介します。

うるう年の判定ルール

うるう年の判定は、以下の3つの条件に基づいて行われます。

  • 400で割り切れる年は、うるう年である(例:2000年)
  • 100で割り切れるが400で割り切れない年は、平年である(例:1900年、2100年)
  • 4で割り切れ、かつ100で割り切れない年は、うるう年である(例:2020年、2024年)

それ以外の年はすべて平年として扱われます。

サンプルコード

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

実行結果

It is not a leap year

コードの解説

このプログラムでは、引数として年を受け取る「year_check」という関数を定義しています。関数内部では、まずその年が400で割り切れるかどうかを確認し、割り切れれば「うるう年」と出力します。次に、100で割り切れる場合は「うるう年ではない」と出力します。さらに、4で割り切れる場合には「うるう年」となり、いずれの条件にも当てはまらない年は「うるう年ではない」と判定されます。

判定対象となる年(この例では1900年)は関数の外部で定義され、その値を引数として関数に渡して呼び出しています。1900年は100で割り切れますが400で割り切れないため、実行結果には「It is not a leap year(うるう年ではない)」と表示されます。

まとめ

うるう年の判定は、条件分岐と剰余演算子を組み合わせるだけで実装できます。日付処理を行うアプリケーションでは、カレンダー機能や期間計算などで正確なうるう年の判定が求められる場面が多いため、このロジックは覚えておくと便利です。なお、PHPでは組み込み関数の checkdate() を使って「2月29日」が有効な日付かどうかを確認する方法でも、同様にうるう年を判定できます。

  1. JavaScriptで特定の年がうるう年かどうかを判定するプログラムの作成方法

    JavaScriptで特定の年がうるう年かどうかを確認する方法 JavaScriptである年がうるう年かどうかを判定するには、その年を「4」で割った余りが0になるかどうかを調べます。ここでは、ユーザーが入力した年をもとに、うるう年かどうかを判定するシンプルなプログラムを紹介します。 サンプルコード <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" conten

  2. C言語で配列が回文かどうかを判定するプログラム

    回文とは任意のサイズ n の配列 arr[] が与えられたとき、その配列が回文(パリンドローム)かどうかを判定するのが本記事の目的です。回文とは、前から読んでも後ろから読んでも同じになる並びのことで、MADAM や NAMAN といった文字列が代表的な例として挙げられます。配列が回文かどうかを確認するには、配列を先頭からと末尾から同時に走査し、対応する要素同士を比較していきます。入力例と出力例Input: arr[] = {1, 0, 0, 1} Output: 配列は回文です Input: arr[] = {1, 2, 3, 4, 5} Output: 配列は回文ではありません考え方(アプ