caixiong 发表于 2007-9-2 14:20:24

通过经纬度计算日出日落时间!给个思路吧

如题!

zhang_mike2000 发表于 2007-9-2 17:12:23

做什么用?

pulan 发表于 2007-9-2 17:27:34

每个城市都有日出日落时间表啊

yplin27 发表于 2007-9-2 18:10:39

这条式不知道可不可行:



sin(h)=sin(δ)sin(Φ)+cos(δ)cos(Φ)cos(τ)



其中h为太阳高度角,δ为太阳赤纬,即太阳直射点纬度,τ为时角,Φ为纬度



取h为0,查表得太阳赤纬,算出τ,然后通过τ算时间,τ 12时为0',向前一小时+15',向后一小时减15'



具体的记得不是很清楚,如果觉得可行就出查查

zxw2008 发表于 2007-9-2 19:32:13

我也想写一个这样的程序,不知道去哪查,请楼上的说具体点,谢谢。

zhiwei 发表于 2007-9-2 19:56:28

好像比较复杂啊,地球轨道是椭圆的,用公式的话结果不一定准确。。不过由些网站有这些小控件显示出来可以去查一下源代码,万一查不到到国旗护卫队咨询一下吧。

yplin27 发表于 2007-9-2 20:38:27

to: 【4楼】 zxw2008

    细想一下发觉上面方法似乎并不可行,上面只是理论上太阳高度角为0时的时间



    刚刚搜了一下,不知道这两个可不可以

    http://www.laogu.com/wz_1385.htm

    http://www.pdweather.com/pro/richu.html

cock 发表于 2007-9-3 04:35:08

吾所在地方四面环山,时间至少要有15分钟修正。

caixiong 发表于 2007-9-3 11:11:42

网上找来找去就这一篇,可惜我看不太懂

下面是一种随经纬度变化的日出日落时间计算方法,我成功运用在一智能路灯控制器中,希望对需要的朋友有帮助。

已知:日出日落时太阳的位置h=-0.833°,要计算地的地理位置,经度Long,纬度G1at,时区zone,UTo为上次计算的日出日落时间,第一次计算时UTo=180°。



(1)先计算出从格林威治时间公元2000年1月1日到计算日天数days;



(2)计算从格林威治时间公元2000年1月1日到计算日的世纪数t,



则      t=(days+UTo/360)/36525;



(3)计算太阳的平黄径   L=280.460+36000.770×t;



(4)计算太阳的平近点角



G=357.528+35999.050×t



(5)计算太阳的黄道经度



λ=L+1.915×sinG+0.020xsin(2G);



(6)计算地球的倾角ε=23.4393-0.0130×t;



(7)计算太阳的偏差δ=arcsin(sinε×sinλ);



(8)计算格林威治时间的太阳时间角GHA:



    GHA=UTo-180-1.915×sinG-0.020×sin(2G) +2.466×sin(2λ)-0.053×sin(4λ)



(9)计算修正值e:



    e=arcos{[ sinh-sin(Glat)sin(δ)]/cos(Glat)cos(δ)}



(10)计算新的日出日落时间



UT=UTo-(GHA+Long±e);



其中“+”表示计算日出时间,“-”表示计算日落时间;



(11)比较UTo和UT之差的绝对值,如果大于0.1°即0.007小时,把UT作为新的日出日落时间值,重新从第(2)步开始进行迭代计算,如果UTo和UT之差的绝对值小于0.007小时,则UT即为所求的格林威治日出日落时间;



(12)上面的计算以度为单位,即180°=12小时,因此需要转化为以小时表示的时间,再加上所在的时区数Zone,即要计算地的日出日落时间为



T=UT/15+Zone



上面的计算日出日落时间方法适用于小于北纬60°和南纬60°之间的区域,如果计算位置为西半球时,经度Long为负数。

fsclub 发表于 2007-9-3 12:51:00

海拔不同怎么样办?

kingofkings 发表于 2007-9-3 13:38:47

我以前做过一个太阳能面板的向阳功能,里面需要每日每个时刻的太阳高度角,这里面当然有日出日落时间,本来我也想要算法,但是后来发现用这个算法的速度还不及查表……浮点运算太耗资源,看你的要求了,一年也就356个数据。具体的数据可以在建筑相关领域去查找,都有的,因为建筑师要用这个表来确定建筑的朝向。

当然你不是作产品而是做一个程序玩玩,那就当我没说。

zhiwei 发表于 2007-9-3 19:43:21

是没有必要计算的。路灯可以用查表来搞定,不用很精确,不过最好加上感光控制。太阳能感光板也是加上表格,如果要求很高再用传感器来检测是否垂直入射,来不断调整即可。

ljxh401 发表于 2007-9-4 14:34:02

好像外国的某个网站有

jiayushu 发表于 2008-2-16 22:12:11

http://www.cng.com.cn/bbs/printpage.asp?BoardID=34&ID=12002
--计算昼夜长短、日出日落时间的通式

下面是一个计算任意地方在任意一天昼夜长短、日出日落时间的通式,不知道正确不正确,现在贴出来,请大家批评指正。

假设某天太阳直射的纬度为M度(M在+23.5到-23.5之间),观察者所处的纬度为N度(N在+90到-90之间),那么这天N度地点的夜长为:

T=(2/15)arccos(tgMtgN) 小时……(1)

(说明:如果人在北半球,太阳在南半球,则M应该取负值,那么结果也是负值,该值表示的是北半球那人所看到的昼长。)

日出时刻为arccos(tgMtgN)/15 (当地时刻)……(2)

日落时刻为24-arccos(tgMtgN)/15 (当地时刻)……(3)

例如,要计算北京在夏至这一天的夜长,已知北京在北纬40度,即N=40,夏至这天太阳直射北纬23.5度,即M=23.5,把N和M的值代入(1)式,可计算出这天北京的夜长为9.15小时。

上面的公式中,M和N的地位等同,所以在一定范围内可互换。比方说,某人在北纬20度、太阳在北纬10度与某人在北纬10度、太阳在北纬20度的昼夜长短一样,日出日落时刻也一样。

用上面的公式(1)也可以计算某天极昼和极夜出现的纬度。例如计算太阳在北纬M度这一天,北极出现极昼的纬度。把T=0代入(1)式,可以得到N=90-M 。就是说,当太阳在北纬20度时,北极出现极昼的最低纬度是北纬70度;当太阳在北回归线(北纬23.5度)这一天,北极出现极昼的最低纬度是北纬66.5度。当然,因为地球两极略扁,不是个标准球,所以计算结果比实际值略大。


上面的公式是在简化的理想条件下得到的,所以是个近似值。简化理想条件是:1假设地球是个标准球体;2 忽略人的身高 3 假设每天太阳的轨迹圆是相互平行的(实际上太阳的轨迹圆不是平行的,是弹簧状,所以早上太阳升起的纬度和落下的纬度不同,上午和下午的长短也不同)。

这个公式只能供我们参考用,不能教给学生,因为还没经国家同意,所以考试时一旦与标准答案不同,我不负责。

对三角函数已经陌生了,不知道上面的公式还能不能继续简化。如果谁还有更好的公式请贴出来,共享

gxlujd 发表于 2008-2-17 02:26:50

这么复杂的计算,8位单片机能吃得消吗?

Paul 发表于 2008-2-17 11:13:54

这是我写的一个用于太阳能电板追日的,希望对你有用


#include <math.h>
#define PI 3.1415926
struct in
{
unsigned int jingdu;
unsigned int jingfeng;
unsigned int weidu;
unsigned int weifeng;
unsigned int year;
unsigned charmonth;
unsigned char day;
unsigned char hour;
unsigned char mintue;
}data_in;

float n0;
floattemp0;
floattemp1;
unsigned long int total_day;   //积日
floatdz_jingdu;                      //经度订正
floatdz_sk;               //时刻订正
floattemp2;
float degree_sun;
float Er,Ed,Et,Sd;
float SD_sun,h_sun,a_sun,a_sun_up,a_sun_down;
float temp3,temp4;
void main(void)
{
data_in.jingdu =120;
   data_in.jingfeng=57;
   data_in.weidu=31;
   data_in.weifeng=22;
   data_in.year=2006;
   data_in.month=11;
   data_in.day=7 ;
   data_in.hour=6;
   data_in.mintue=21;

n0 = 79.6764 + 0.2422 * (data_in.year-1985)-(int)((data_in.year- 1985)/4);
temp0= data_in.year/4.0-(int)(data_in.year/4);
temp1=32.8 ;
if( data_in.month <=2)
       temp1=30.6;
else
      {
       if(temp0==0)
            temp1=32.8 ;
      }
total_day = (int) (30.6 * data_in.month -temp1 + 0.5) +data_in.day ;   

dz_jingdu =(data_in.jingdu+data_in.jingfeng/ 60.0) / 15;      
dz_sk = data_in.hour-8+data_in.mintue/60.0 ;
temp2= total_day+(dz_sk -dz_jingdu)/24.0 ;
degree_sun=2*PI*( total_day-n0)/365.2422;
   
Er=1.000423 + 0.032359*sin(degree_sun)+ 0.000086*sin(2*degree_sun)- 0.008349*cos(degree_sun)+ 0.000115*cos(2*degree_sun);
Ed=0.3723 + 23.2567*sin(degree_sun)+ 0.1149*sin(2*degree_sun)-0.1712*sin(3*degree_sun)- 0.758*cos(degree_sun)+ 0.3656*cos(2*degree_sun)+ 0.0201*cos(3*degree_sun);
Et=0.0028 - 1.9857*sin(degree_sun)+ 9.9059*sin(2*degree_sun)- 7.0924*cos(degree_sun)- 0.6882*cos(2*degree_sun);
Sd=data_in.hour+(data_in.mintue-(120.0-(data_in.jingdu+data_in.jingfeng/60.0))*4)/60.0;    //当地太阳时间
SD_sun= (Sd+Et/60.0-12)*15;       //当地太阳角度

temp3=2*PI*(data_in.weidu+data_in.weifeng/60.0)/360;
temp1=2*PI*Ed/360;
temp2=2*PI*SD_sun/360;
temp4=sin(temp1)*sin(temp3) +cos(temp1)*cos(temp3)*cos(temp2);
if(temp4>1)
   temp4=1;
else
   if(temp4<-1)
      temp4=-1;
h_sun=asin(temp4);//太阳高度角

temp4=(sin(h_sun)*sin(temp3)-sin(temp1))/(cos(h_sun)*cos(temp3));
if(temp4>1)
   temp4=1;
else
   if(temp4<-1)
      temp4=-1;
a_sun=acos(temp4);//太阳方位角
h_sun=h_sun*360/(2*PI);
a_sun=a_sun*360/(2*PI);

a_sun_up=acos(sin(temp1)/cos(temp3))*360/(2*PI);//日出方位
a_sun_down=a_sun_up-180; //日落方位


}

Feeling_MCU 发表于 2008-2-17 12:00:40

我毕业设计就是搞得这个东西,用来模拟太阳能热发电系统的。

理论上是可以通过公式、经纬度、海拔高度准确计算出太阳的仰角和方位角,然后控制反射板将阳光反射到集热塔。当然计算日出日落时间也很简单了。我的处理方法是通过计算机来计算,然后传参数给单片机,由单片机去控制反射板。

国内国外资料有很多,可惜我的毕业设计给丢了,郁闷惨了。要不然可以给你参考的。

y2kloach 发表于 2008-2-17 12:53:55

这个厉害!

adcr 发表于 2008-2-17 17:17:10

介绍个叫"日棱万年历"的软件可做参考

oouu01 发表于 2008-2-17 21:17:16

光经纬度不成啊。还得地球半径。月份和日期。

TonyCai 发表于 2008-2-17 21:20:54

不错,感兴趣。
但现在的气候与老黄历都对不上了,干脆自己定

fsclub 发表于 2008-2-19 08:22:16

记得灵图5和ROUTE66(GPS软件)都有GPS定位点的日出日落的信息,精确到秒,就是不知道怎么算的.

szliuzz 发表于 2008-4-3 13:48:50

我以前在路灯节能上用过

如果要求不是很高,网上有各地的经纬度和日出日落时间可用

可以将不同城市、时间的数据写成数组存入程序存储区,再进行日出日落时间判断

sciencehero 发表于 2008-4-3 13:58:39

关注中......

wangyanhai815 发表于 2009-12-1 13:42:17

楼主~现在程序怎么样了?

fengye2009 发表于 2009-12-13 10:35:37

程序计算起来的运算量比较大,一年也就356个数据,不如查表方便。

XA144F 发表于 2009-12-13 10:58:50

向日葵可没有什么查表程序!

如果简单,那就给设备装准直器把,实时跟踪太阳的位置移动,需要的或许仅仅是一个光敏电阻组成的探测阵列。

super373 发表于 2009-12-13 11:32:46

关注的mark

RISCM 发表于 2009-12-13 13:08:27

貌似在中学的时候就成功计算过了。
不过那个时候是按照海平面来算的,正巧我所在的城市海拔为0。呵呵比较幸运。

这个用农历算会比较准确一些,当然还要考虑到海拔的所造成的误差。

至于运算么~~,有一些地理知识,加上一些几何知识,还有三角函数就OK了。

jdh99 发表于 2009-12-15 08:48:14

15L的算法很耗资源,浮点数运算不是8位单片机承受的了的。我原来也是这么写的,最后还是改成了查表法,采了264个数据。纬度采了11个值,从5 - 55度,基本覆盖了中国。经度取北京的经度,其他经度以北京为基准换算,12个月每月采2次。误差在5min - 15min之间。

Paul 发表于 2009-12-15 12:00:32

为什么8位机不能承受的了呢,你查表误差在5min - 15min之间,15L的算法是绝对不要5min - 15min那么久的.系统中单独放一个MEGA48负责计算,成本也还是可以接受的,误差绝对比查表小很多.
15L的算法已加入了误差,没办法,帮人家开发的东西,人家还在用的,所以只能留一手了.

Paul 发表于 2009-12-15 12:01:37

为什么8位机不能承受的了呢,你查表误差在5min - 15min之间,15L的算法是绝对不要5min - 15min那么久的.系统中单独放一个MEGA48负责计算,成本也还是可以接受的,误差绝对比查表小很多.
15L的算法已加入了误差,没办法,帮人家开发的东西,人家还在用的,所以只能留一手了.

haeha 发表于 2009-12-15 13:39:56

有个手机软件叫做手机指南针,就有这功能,可以试一下

skyxjh 发表于 2010-3-7 19:47:01

mark

easytime 发表于 2010-3-7 20:38:38

呵呵,以前做太阳能热水器控制时,就用过计算日出日落时间,现在怎么都忘了,去找找看。

AIHHLI 发表于 2010-3-7 21:00:28

嗯,手机上有一个叫指南针的软件,指定经纬度和时区可以算出来,就不知道是怎么实现的。

jdh99 发表于 2010-4-20 16:06:50

回复【32楼】Paul
-----------------------------------------------------------------------

浮点数运算很占资源,我用的是168,16Kram,一开始采取15L的浮点数运算,发现占了8Kram,这不是项目能承受的。当然如果再增加一个MCU专门负责运算也是可以的,不过这样就增加了成本。

ddrfft 发表于 2010-4-21 12:04:08

参考寿星万年历吧,开源的。

xtaens 发表于 2010-6-26 17:26:03

mark

lou0908 发表于 2010-6-27 09:57:08

mark

xiubing65 发表于 2010-6-27 22:09:00

回复【4楼】zxw2008
-----------------------------------------------------------------------

椭圆有椭圆轨迹方程啊?

ufo2007 发表于 2010-12-1 15:23:21

留一爪子

hu7215 发表于 2011-4-9 21:09:35

现在怎么样了
支持一下

lvyufeiyi 发表于 2011-4-19 15:43:24

回复【8楼】caixiong 菜熊
-----------------------------------------------------------------------

大侠,我现在也做智能路灯的控制,那个随经纬度日出日落算法的C语言代码还有吗?跪求啊

number007cool 发表于 2011-6-7 13:04:17

mark!!!!!!

sczq2000 发表于 2011-6-7 15:52:06

实际现在不用计算了,可以有一套系统,简单实用,跟中太阳回复【45楼】number007cool
-----------------------------------------------------------------------

af00 发表于 2011-6-7 17:05:33

关注

zieous 发表于 2011-9-27 16:30:14

这个好玩儿

taojie 发表于 2011-9-27 17:27:30

有点意思,以前有个这样的项目,后来飞了

dachun 发表于 2014-6-18 15:43:47

本帖最后由 dachun 于 2014-6-18 15:49 编辑

最近正好有个项目需要这个功能,从CSDN下载的C代码,经过验证计算日出日落时间和网络查询偏差不超5分钟,也算精确了,可以结贴了吧!呵呵

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "math.h"
#include "time.h"

#define M_PI 3.14

static double RAD = 180.0 * 3600 /M_PI;
static double richu;
static double midDayTime;
static double dawnTime;
static double jd;
static double wd;
static double jd_degrees;
static double jd_seconds;
static double wd_degrees;
static double wd_seconds;
/*************************
   * 儒略日的计算
   *
   * @param y 年
   *
   * @param M 月
   *
   * @param d 日
   *
   * @param h 小时
   *
   * @param m 分
   *
   * @param s秒
   *
   * @return int
***************************/
static double timeToDouble(int y, int M, double d)
{
//      double A=0;
      double B=0;
      double jd=0;

      //设Y为给定年份,M为月份,D为该月日期(可以带小数)。
      //若M > 2,Y和M不变,若 M =1或2,以Y–1代Y,以M+12代M,换句话说,如果日期在1月或2月,则被看作是在前一年的13月或14月。
      //对格里高利历有 :A = INT(Y/100)   B = 2 - A + INT(A/4)
      //对儒略历,取 B = 0
      //JD = INT(365.25(Y+4716))+INT(30.6001(M+1))+D+B-1524.5 (7.1)
      B=-13;
      jd=floor(365.25 * (y + 4716))+ floor(30.60001 * (M + 1)) +B+ d- 1524.5;
      return jd;
}

static void doubleToStr(double time,char *str)
{
       double t;
       int h,m,s;

      t = time + 0.5;
      t = (t - (int) t) * 24;
      h = (int) t;
      t = (t - h) * 60;
      m = (int) t;
      t = (t - m) * 60;
      s = (int) t;
      sprintf(str,"%02d:%02d:%02d",h,m,s);
}

/****************************
   * @param t 儒略世纪数
   *
   * @return 太阳黄经
*****************************/
static double sunHJ(double t)
{
      double j;
      t = t + (32.0 * (t + 1.8) * (t + 1.8) - 20) / 86400.0 / 36525.0;
      // 儒略世纪年数,力学时
      j = 48950621.66 + 6283319653.318 * t + 53 * t * t - 994 + 334166 *cos(4.669257 + 628.307585 * t) + 3489 * cos(4.6261 + 1256.61517 * t) + 2060.6 * cos(2.67823 + 628.307585 * t) * t;
      return (j / 10000000);
}

static double mod(double num1, double num2)
{
      num2 = fabs(num2);
      // 只是取决于Num1的符号
      return num1 >= 0 ?(num1 - (floor(num1 / num2)) * num2 ): ((floor(fabs(num1) / num2)) * num2 - fabs(num1));
}
/********************************
   * 保证角度∈(-π,π)
   *
   * @param ag
   * @return ag
***********************************/
static double degree(double ag)
{
      ag = mod(ag, 2 * M_PI);
      if(ag<=-M_PI){
            ag=ag+2*M_PI;
      }
      else if(ag>M_PI){
            ag=ag-2*M_PI;
      }
      return ag;
}

/***********************************
   *
   * @param date儒略日平午
   *
   * @param lo    地理经度
   *
   * @param la    地理纬度
   *
   * @param tz    时区
   *
   * @return 太阳升起时间
*************************************/
double sunRiseTime(double date, double lo, double la, double tz)
{
      double t,j,sinJ,cosJ,gst,E,a,D,cosH0,cosH1,H0,H1,H;
      date = date - tz;
      // 太阳黄经以及它的正余弦值
      t = date / 36525;
      j = sunHJ(t);
      // 太阳黄经以及它的正余弦值
      sinJ = sin(j);
      cosJ = cos(j);
      // 其中2*M_PI*(0.7790572732640 + 1.00273781191135448*jd)恒星时(子午圈位置)
      gst = 2 * M_PI * (0.779057273264 + 1.00273781191135 * date) + (0.014506 + 4612.15739966 * t + 1.39667721 * t * t) / RAD;
      E = (84381.406 - 46.836769 * t) / RAD; // 黄赤交角
      a = atan2(sinJ * cos(E), cosJ);// '太阳赤经
      D = asin(sin(E) * sinJ); // 太阳赤纬
      cosH0 = (sin(-50 * 60 / RAD) - sin(la) * sin(D)) / (cos(la) * cos(D)); // 日出的时角计算,地平线下50分
      cosH1 = (sin(-6 * 3600 / RAD) - sin(la) * sin(D)) / (cos(la) * cos(D)); // 天亮的时角计算,地平线下6度,若为航海请改为地平线下12度
      // 严格应当区分极昼极夜,本程序不算
      if (cosH0 >= 1 || cosH0 <= -1){
            return -0.5;// 极昼
      }
      H0 = -acos(cosH0); // 升点时角(日出)若去掉负号 就是降点时角,也可以利用中天和升点计算
      H1 = -acos(cosH1);
      H = gst - lo - a; // 太阳时角
      midDayTime = date - degree(H) / M_PI / 2 + tz; // 中天时间
      dawnTime = date - degree(H - H1) / M_PI / 2 + tz;// 天亮时间
      return date - degree(H - H0) / M_PI / 2 + tz; // 日出时间,函数返回值
    }

int main()
{

    time_t curtime;
    struct tm * timeinfo;
    int i,j,k;
    char timestr;
    int year;
    int month;
    double day;
    int hour;
    int min;
    int sec;
    int tz;
    FILE *fp;


    //上海东经121度29分,北纬31度14分
    jd_degrees=121;
    jd_seconds=28;
    wd_degrees=31;
    wd_seconds=14;
   //乌鲁木齐东经87度35分,北纬43度48分
    //jd_degrees=87;
    //jd_seconds=35;
    //wd_degrees=43;
    //wd_seconds=48;
    //广州 E113°16' N23°06'
    //jd_degrees=113;
    //jd_seconds=16;
    //wd_degrees=23;
    //wd_seconds=6;

    tz=8;

    //得到当前时间
    time( &curtime );
    timeinfo=localtime(&curtime);
    printf ( "The current date/time is: %s", asctime(timeinfo));

    //step 1
    jd=-(jd_degrees+jd_seconds/60)/180*M_PI;
    wd=(wd_degrees+wd_seconds/60)/180*M_PI;
    printf("jd=%f\r\n",jd);
    printf("wd=%f\r\n",wd);

    //step 2
    year=timeinfo->tm_year+1900;
    month=timeinfo->tm_mon+1;
    day=timeinfo->tm_mday;
    hour=timeinfo->tm_hour;
    min=timeinfo->tm_min;
    sec=timeinfo->tm_sec;
    richu = timeToDouble(year,month,day) - 2451544.5;
    printf ( "mjd:%f\r\n", richu);
    printf("year=%d,month=%d,day=%f\r\n",year,month,day);
    for (i = 0; i < 10; i++){
      richu = sunRiseTime(richu, jd, wd, tz/24.0);// 逐步逼近法算10次
    }

    doubleToStr(richu,timestr);
    printf("日出时间 %s\r\n",timestr);

    doubleToStr(midDayTime + midDayTime - richu,   timestr);
    printf("日落时间 %s\r\n",timestr);
    printf ( "richu:%f,midDayTime:%f\r\n", richu,midDayTime);

    doubleToStr(midDayTime,timestr);
    printf("中天时间 %s\r\n",timestr);

    doubleToStr(dawnTime,timestr);
    printf("天亮时间 %s\r\n",timestr);

    doubleToStr(midDayTime + midDayTime - dawnTime,timestr);
    printf("天黑时间 %s\r\n",timestr);


    fp=fopen("richu.txt","w");
    if(fp==NULL){
      printf("file open error\r\n");
    }

    fclose(fp);
    printf("Hello world!\n");
    return 0;
}

wtiechen1969 发表于 2016-2-10 08:26:51

记号,经纬度计算日落时间

就在今天 发表于 2016-2-10 12:33:27

记号,经纬度计算日落时间{:smile:}

farmerzhangdl 发表于 2016-2-10 14:00:42

这个的确可以算出来的,我曾经给一个进口的叫做ce318的光度计设备破解协议,那个就是根据gps算当时的太阳位置跟高度,然后自动调节光筒对准太阳,原理未知

snic_k 发表于 2016-2-14 14:21:01

记号,经纬度计算日落时间

tangwei039 发表于 2016-2-14 18:52:39

记号,经纬度计算日落时间

koenlee93 发表于 2016-2-14 19:05:38

可以向高中地理老师先请教原理

沉默胜过白金 发表于 2016-2-14 19:17:36

记号,经纬度计算日落时间.

xinmulan 发表于 2016-5-12 23:10:07

谢谢楼主了。。。这么好的东西

licheng0620 发表于 2016-5-13 04:45:23

参考下,谢谢lz

changshs 发表于 2020-11-3 22:55:30

dachun 发表于 2014-6-18 15:43
最近正好有个项目需要这个功能,从CSDN下载的C代码,经过验证计算日出日落时间和网络查询偏差不超5分钟,也 ...

不错,借鉴了,谢谢!~
页: [1]
查看完整版本: 通过经纬度计算日出日落时间!给个思路吧