Задача возникла при написании для одного нумизматического проекта калькулятора, способного переводить даты из определённого набора календарей в григорианский. Пользователь ресурса (так и не созданного) мог ввести в формочку дату (год), указанную на монете и получить в ответ соответствующий год по григорианскому календарю.
Передо мной поставили задачу: реализовать поддержку как можно большего числа календарей, которые использовались при чеканке монет.
Пошерстив по гуглу, я обнаружил, что единого ресурса, на котором были бы описаны необходимые формулы нет (дело было в начале 2009го). Так что, приведу-ка я их все здесь, вдруг кому пригодятся…
Про историю и особенности каждого календаря можно прочитать в википедии, а здесь я буду приводить лишь формулы для перевода и значения используемых символов.
Процесс перевода записей лет из иудейского, мусульманского лунного, японского и непальского календарей описан здесь.
Upd. А здесь можно посмотреть описание алгоритмов перевода для календарей майа и французской республики, а также персидского и индийского календарей.
Рассмотрим другие календари. Все они солнечные, так что формулы перевода очень простые.
1. Таиландский буддийский календарь .
Соответствие символов цифрам: ๑=1, ๒=2, ๓=3, ๔=4, ๕=5, ๖=6, ๗=7, ๘=8, ๙=9, ๐=0.
Для перевода к григорианской дате используется формула Год_по_григорианскому_календарю=Год_по_тайскому_календарю-543.
2. Монгольский календарь.
Символы, использовавшиеся монголами в качестве цифр, представлены в таблице unicode символами с 1810 по 1819.
Увидеть их можно здесь. Монгольские символы были введены в юникод версии 3.0.
Для перевода к григорианской дате используется формула Год_по_григорианскому_календарю=Год_по_монгольскому_календарю+1910 лет.
3. Бенгальский календарь.
Соответствие символов цифрам: ১=1, ২=2, ৩=3, ৪=4, ৫=5, ৬=6, ৭=7, ৮=8, ৯=9, ০=0.
Бенгальский календарь отстаёт от григорианского на 593 года. Прибавляем их, и дело в шляпе.
На этом пока что всё. Если найду информацию о каком-нибудь ещё календаре, то обязательно добавлю её в топик.
Передо мной поставили задачу: реализовать поддержку как можно большего числа календарей, которые использовались при чеканке монет.
Пошерстив по гуглу, я обнаружил, что единого ресурса, на котором были бы описаны необходимые формулы нет (дело было в начале 2009го). Так что, приведу-ка я их все здесь, вдруг кому пригодятся…
Про историю и особенности каждого календаря можно прочитать в википедии, а здесь я буду приводить лишь формулы для перевода и значения используемых символов.
Процесс перевода записей лет из иудейского, мусульманского лунного, японского и непальского календарей описан здесь.
Upd. А здесь можно посмотреть описание алгоритмов перевода для календарей майа и французской республики, а также персидского и индийского календарей.
Рассмотрим другие календари. Все они солнечные, так что формулы перевода очень простые.
1. Таиландский буддийский календарь .
Соответствие символов цифрам: ๑=1, ๒=2, ๓=3, ๔=4, ๕=5, ๖=6, ๗=7, ๘=8, ๙=9, ๐=0.
Для перевода к григорианской дате используется формула Год_по_григорианскому_календарю=Год_по_тайскому_календарю-543.
2. Монгольский календарь.
Символы, использовавшиеся монголами в качестве цифр, представлены в таблице unicode символами с 1810 по 1819.
Увидеть их можно здесь. Монгольские символы были введены в юникод версии 3.0.
Для перевода к григорианской дате используется формула Год_по_григорианскому_календарю=Год_по_монгольскому_календарю+1910 лет.
3. Бенгальский календарь.
Соответствие символов цифрам: ১=1, ২=2, ৩=3, ৪=4, ৫=5, ৬=6, ৭=7, ৮=8, ৯=9, ০=0.
Бенгальский календарь отстаёт от григорианского на 593 года. Прибавляем их, и дело в шляпе.
На этом пока что всё. Если найду информацию о каком-нибудь ещё календаре, то обязательно добавлю её в топик.