Работа с негригорианскими календарями

Задача
Необходимо работать с негригорианским календарем, таким как Юлианский, Иудейский или Французский Республиканский.

Решение
Модуль PHP «календарь» обеспечивает функции преобразования для работы с Юлианским календарем, так же как и с Французским Республиканским и Иудейским календарями. Для работы с этими функциями необходимо, чтобы PHP был собран с поддержкой этого модуля. Эти функции используют юлианский счет дней (а это не то же самое, что Юлианский календарь) как промежуточный формат обмена данными между ними. Две функции, jdtogregorian() и gregoriantojd(), выполняют преобразования между юлианскими днями и теми же датами Григорианского календаря:

$jd = gregoriantojd(3,9,1876); // 9 марта 1876 года; $jd = 2406323
$gregorian = jdtogregorian($jd); // $gregorian = 3/9/1876


Допустимым диапазоном Григорианского календаря являются значения от 4714 BCE (до рождества Христова) до 9999 CE (после рождества Христова).

Обсуждение
Преобразования между юлианским представлением дат и Юлианским календарем выполняются при помощи функции jdtojulian() и juliantojd():

// 29 февраля 1900 года (негригорианский високосный год)
$jd = juliantojd(2,29,1900); // $jd = 2415092
$julian = jdtojulian($jd); // $julian = 2/29/1900
$gregorian = jdtogregorian($jd); // $gregorian = 3/13/1900


Допустимым диапазоном для Юлианского календаря являются значения от 4713 BCE до 9999 CE, но так как он был создан в 46 году до рождества Христова, то вы рискуете вызвать недовольство поклонников Юлианского календаря, если будете использовать его для дат до его создания. Преобразования между юлианским представлением дат и Французским Республиканским календарем выполняется посредством функции jdtofrench() и frenchtojd():

$jd = frenchtojd(8,13,11); // 13 floreal XI; $jd = 2379714
$french = jdtofrench($jd); // $french = 8/13/11
$gregorian = jdtofregorian($jd); // $gregorian = 5/3/1803;

дата продажи Луизианы США.

Для Французского Республиканского календаря допустимыми являются даты с сентября 1792 года до сентября 1806 года, что представляет собой небольшой интервал времени, но, поскольку календарем пользовались с 1793 года до января 1806 года, этого вполне достаточно. Для преобразования между юлианским представлением дат и Иудейским календарем применяются функции jdtojewish() и jewishtojd( ):

$jd = JewishToJD(6,14,5761); // Adar 14, 5761; $jd = 2451978
$jewish = JDToJewish($jd); // $jewish = 6/14/5761
$gregorian = JDToGregorian($jd); // $gregorian = 3/9/2001


Допустимый диапазон для Иудейского календаря начинается с 3761
BCE (первый год по Иудейскому календарю).
Теги:
gregorian, календаря, календарем, функции, между, jdtogregorian, рождества, представлением, юлианским, преобразования, являются, Христова, gregoriantojd, Григорианского, frenchtojd, диапазоном, Юлианского, значения, 1900 , jdtojulian, сентября, julian, french, Преобразования, juliantojd, jdtofrench, jewish, календарь, Юлианским, Французским, Республиканским, Иудейским, работы, этого, вполне
Добавлено: 21 Июля 2018 07:03:25 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...