转换印度历法的日期

50 投票
5 回答
11221 浏览
提问于 2025-04-17 09:05

我想知道怎么把 unix 时间转换成 印度历­维基百科 的时间,反过来也可以,用 phpPerlPythonJava 来实现。我知道可以转换成 希伯来历犹太历,但是 印度历 目前没有这个选项。

具体来说,我说的是印度的阴历。这个网站可以做到我想要的功能: 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代码,这篇论文还是很不错的。

撰写回答