4

我目前正在编写一些 php 代码来将日期从公历转换为希伯来历。查看 php 日历功能,我发现它具有将公历转换为儒略日和儒略日转换为希伯来文的功能。但是,我找不到直接从公历转换为希伯来语的函数。

出于好奇,我想看看是否可以直接转换。不过,在研究这一点时,我发现将日期转换为儒略日,然后转换为所需的日历系统似乎是标准的。

我在几个库中找到了这个: http ://www.php.net/manual/en/ref.calendar.php http://www.fourmilab.ch/documents/calendar/calendar.js

并在此处的论坛帖子中提到: http ://www.physicsforums.com/showthread.php?t=173119

困扰我的是为什么!这是某个团体决定的标准吗?历史上只是这样吗?

想出直接转换日期的算法不是更有效吗?或者相反,是什么让朱利安时代如此高效?

4

1 回答 1

7

如果您想在n不同的日历之间进行转换,并且您实现了从任何一种格式转换为任何其他格式的算法,您将需要n^2 - n转换算法。但是,如果改为编写算法将任何日历格式转换为一种基准日历格式,然后编写算法将基准格式转换为任何其他格式,则您只需要编写2(n-1)算法即可。

这些日历格式都代表同一个东西,时间。表示时间的最基本方式是自某个参考点以来经过的时间量,因此作为基线格式最有意义。这正是Julian Date的含义,即自公元前 4713 年 1 月 1 日格林威治中午以来的天数。

您可能认为从一种格式转换为 Julian Date 然后再转换为另一种格式会更慢,但是任何专门的转换算法本质上都会获取输入日期,将其转换为日期表示之间的某种中性转换,然后将其转换为所需的日历格式。但是,由于 Julian Date 是一种简单的单一数字格式,这实际上与转换为 Julian Date 然后转换为其他格式相同,因此性能增益可以忽略不计。此外,日历转换可能不是任何应用程序性能的瓶颈,因此从它们中榨取最大可能的性能可能不是对任何人时间的良好利用。

于 2011-12-22T03:23:55.337 回答