gregoriantojd

グレゴリウス日をユリウス積算日に変換する

説明

int gregoriantojd(int $month, int $day, int $year)

有効なグレゴリウス暦の範囲は紀元前 4714 年 11月25日から、少なくとも紀元 9999 年 12月31日までです。

このソフトウェアは日付けを全て紀元前 4714 年にさかのぼることが 出来ますが、この様な使い方は特に意味があるわけではありません。 グレゴリウス暦は 1582 年 10 月 15 日(ユリウス暦では 1582 年 10 月 5 日)まで制定されていませんでした。 この暦は、いくつかの国でもっと後まで受け入れられませんでした。 例えば、イギリスは 1752 年、ロシア(USSR)は 1918 年、ギリシャは 1923 年に 移行しました。 ほとんどのヨーロッパの国々では、グレゴリウス暦の前は ユリウス暦を使用していました。

パラメータ

month

月を表す、1 (January) から 12 (December) までの数字。 月の最後の日が与えられた日より少ない場合、オーバーフローが発生します; 例を参照ください。

day

日を表す、1 から 31 までの数字。

year

年を表す、-4714 から 9999 までの数字。 負の値は B.C を意味し、正の値は A.D を意味しています。 0 という年はないことに注意してください。 つまり、B.C 元年の12月31日の次は、A.D 元年の1月1日です。

戻り値

指定したグレゴリウス日をユリウス積算日になおした結果を返します。 範囲外の日付については 0 を返します。

例1 カレンダー関数

<?php
$jd = gregoriantojd(10, 11, 1970);
echo "$jd\n";
$gregorian = jdtogregorian($jd);
echo "$gregorian\n";
?>

上の例の出力は以下となります。

2440871
10/11/1970

例2 Overflow behavior

<?php
echo gregoriantojd(2, 31, 2018), PHP_EOL,
     gregoriantojd(3,  3, 2018), PHP_EOL;
?>

上の例の出力は以下となります。

2458181
2458181

参考

  • jdtogregorian
  • cal_to_jd