ホームページ  >  記事  >  バックエンド開発  >  PHP プログラミングのヒント: 任意の日付の曜日を計算する

PHP プログラミングのヒント: 任意の日付の曜日を計算する

WBOY
WBOYオリジナル
2024-02-29 18:12:03947ブラウズ

PHP プログラミングのヒント: 任意の日付の曜日を計算する

PHP プログラミングのヒント: 任意の日付の曜日を計算する

PHP プログラミングでは、日付の曜日を計算する必要がある状況によく遭遇します。とある日付。 PHP は日付と時刻の関数を提供しますが、場合によっては、この関数を実装するために独自のコードを作成する必要があります。この記事では、PHP を使用して任意の日付の曜日を計算する関数を作成する方法を紹介し、具体的なコード例を添付します。

まず、基本的な計算式であるツァイラーの公式を理解する必要があります。 Zeiler の公式は、任意の日付の曜日を計算するためのアルゴリズムです。公式は次のとおりです:

[ h = (q [13(m 1]/5) K [K/4] [J / 4] - 2J) % 7 ]

ここで、h は曜日 (0 は日曜日、1 は月曜日など)、q は日付 (1 ~ 31)、m は月 (3 は 3 月、4 は 4 月など。ただし、1 月と 2 月は前年の 13 番目と 14 番目の月として計算する必要があります)、K は年の 1 桁、J は年の 10 桁です。年。

この式を基礎として、任意の日付の曜日を計算する PHP 関数を作成できます。以下はサンプル コードです。

function getWeekday($year, $month, $day) {
    if ($month < 3) {
        $year--;
        $month += 12;
    }
    
    $K = $year % 100;
    $J = floor($year / 100);
    
    $h = ($day + floor((13*($month+1))/5) + $K + floor($K/4) + floor($J/4) - 2*$J) % 7;
    
    return $h;
}

// 以2022年5月20日为例
$year = 2022;
$month = 5;
$day = 20;
$weekday = getWeekday($year, $month, $day);

$weekday_map = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];

echo "{$year}年{$month}月{$day}日是{$weekday_map[$weekday]}";

上記のサンプル コードでは、getWeekday という関数を定義します。この関数は、年、月、日の 3 つのパラメーターを受け取り、Zeiler の計算に従って曜日を計算します。式を入力し、対応する数値を返します。最後に、曜日を含むマップされた配列を使用して数値を特定の曜日の名前に変換し、結果を出力します。

この関数を使用すると、任意の日付の曜日を簡単に計算でき、PHP プログラミングで日付と時刻に関連したニーズを処理するための柔軟なソリューションが提供されます。この記事が、PHP プログラミングを学習している読者の助けになれば幸いです。

以上がPHP プログラミングのヒント: 任意の日付の曜日を計算するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。