在我的C应用程序中,我想计算给定日期,纬度和经度的日出/日落时间。我一直在网上搜索,但找不到工作示例。

我尝试实现此示例:
http://souptonuts.sourceforge.net/code/sunrise.c.html

但是此示例无法正常工作。

有没有可以在我的应用程序中轻松实现的简单C源代码或方法?

编辑:
我在link上实现了代码,但是它给了我错误的日落/日出值。我也尝试了扫罗的链接here,但它还是给了我错误的结果。
我有41N,28E的位置。当我尝试使用代码时,两个样本都说日出值大约是10:13,日落时间是23:24。但是正确的值是06:06、20:13。
我不明白这个问题。

最佳答案

该示例代码在VC++ 2010中似乎可以工作,但做了一些小的更改:

  • 编译为C++文件而不是C.
  • 删除#include <sys/time.h>行。
  • 在文件顶部添加#define _USE_MATH_DEFINES,以便定义M_PI。
  • %T调用中的两个strftime()更改为%X

  • 有了工作样本后,您可以调试工作版本和您的版本,以查看计算在哪里开始有所不同并缩小问题范围。逐步执行程序,或者像示例一样自由使用临时printf()调用。

    如果您需要特定的帮助,则必须发布代码(指向整个文件的链接或需要帮助的特定片段)。

    关于c - C中的日出日落时间表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7064531/

    10-12 16:14