如何使用Delphi计算当前日期的日出和日落时间

问题描述:

我需要根据特定的经度和纬度并使用Delphi(我正在使用XE2)确定当日的日出和日落时间(当地时间)。我找到了this article并使用了SysTools library,但结果与英国公布的表格不一致。如何使用Delphi计算当前日期的日出和日落时间

有没有人见过这样的pascal算法?

一些随机的网站:

+0

SunTime组件看起来不错,并且被接受,因为它似乎给出了足够的答案。谢谢 – 2011-12-23 17:59:19

在这里你可以找到一些C实现,C++,Pascal和其他人:

http://www.sci.fi/~benefon/stuff.html

对于帕斯卡一个你可以去这里:

http://www.sci.fi/~benefon/SUNDAY.PAS

而且,你考虑到夏令时?

你会发现有益的另一个环节是:

http://www.delphiarea.com/products/delphi-components/suntime/

这是日出和日落时间计算组件。

希望这可以帮助你。

+1

您可以测试它反对http://stevemorse.org/jcal/sunrise.html – BennyBechDk 2011-12-23 12:56:45

+4

+1 @'SUNDAY.PAS':'用途CRT,DOS'好日子 – kobik 2011-12-23 13:35:13

+0

Sunday.pas很有用,谢谢。 – 2011-12-23 18:00:37

你需要什么样的时代? “上升”和“日落”有几个定义(即公民,航海,天文)。与已发布的表格进行比较时,您还需要了解这些表格的计算方式(地心位置与否,标准时间或当地真实时间等)以及使用算法给出的结果。也有一些近似算法只使用几个术语,更精确的使用更多。此外,请注意IEEE浮点问题,在某些情况下,它们会降低精度。

一个最好的来源,该算法是琼·米斯Astronomical Algorithms (1998), 2nd edition

+0

我以为只有曙光才会有不同的定义,升起和设定是标准的,还是与太阳的高度有关?我有兴趣学习。 – 2012-05-02 20:53:51