【发布时间】:2011-12-23 12:44:15
【问题描述】:
在给定特定纬度和经度并使用 Delphi(我使用 XE2)的情况下,我需要确定当天的日出和日落时间(当地时间)。我找到了this article 并使用了SysTools library,但结果与英国发布的表格不一致。
有人见过这种帕斯卡算法吗?
【问题讨论】:
标签: delphi delphi-xe2
在给定特定纬度和经度并使用 Delphi(我使用 XE2)的情况下,我需要确定当天的日出和日落时间(当地时间)。我找到了this article 并使用了SysTools library,但结果与英国发布的表格不一致。
有人见过这种帕斯卡算法吗?
【问题讨论】:
标签: delphi delphi-xe2
【讨论】:
您可以在这里找到一些 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/
它是一个计算日出和日落时间的组件。
希望对你有所帮助。
【讨论】:
你需要什么样的时间? “上升”和“日落”有几种定义(即民用、航海、天文)。与已发布的表格进行比较时,您还需要知道这些表格是如何计算的(是否为地心位置、标准时间或真正的本地时间等)以及所使用的算法为您提供的结果。还有一些近似算法只使用几个术语,而更精确的算法则使用更多。此外,请注意 IEEE 浮点问题,在某些情况下,它们会大大降低精度。
此类算法的最佳来源之一是 Jean Meeus 的Astronomical Algorithms (1998), 2nd edition
【讨论】: