转换印度历法的日期
我想知道怎么把 unix
时间转换成 印度历维基百科 的时间,反过来也可以,用 php
、Perl
、Python
或 Java
来实现。我知道可以转换成 希伯来历
和 犹太历
,但是 印度历
目前没有这个选项。
具体来说,我说的是印度的阴历。这个网站可以做到我想要的功能: http://web.meson.org/calendars/。比如,它可以把 28-1-2012
(公历)转换成 5-11-2068
(印度阴历)。我该怎么做才能实现同样的功能?如果网上没有现成的脚本,我该如何自己写一个?
5 个回答
12
对于Python,你可以使用calendar2这个库(注意:这不是Python自带的日历模块)。
下面是一个使用示例:
>>> from calendar2 import *
>>> old_hindu_solar_from_absolute(absolute_from_gregorian(3,1,2012))
(11, 16, 5112)
>>> old_hindu_lunar_from_absolute(absolute_from_gregorian(3,1,2012))
(12, 0, 8, 5112)
18
你有没有查看过 DateTime-Indic-0.1 这个模块家族?至少 DateTime::Indic::Chandramana 似乎有一个方法可以把传统日期转换成UTC值(utc_rd_values)。
更新:
我觉得 Calendar::Saka 对很多用户也可能有用(我知道这是印度的国家日历),特别是 to_gregorian()
和 from_gregorian()
这两个方法。
8
论文:印度历法计算
在附录中提供了Common Lisp的代码。
虽然可以根据这篇论文用Python(或其他语言)写出解决方案,但作者对印度历法的规则解释得相当清楚,所以如果你愿意使用提供的Common Lisp代码,这篇论文还是很不错的。