欢迎来到天天文库
浏览记录
ID:37564836
大小:137.75 KB
页数:9页
时间:2019-05-25
《时间转换--年积日-儒略日-GPS周》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、时间转换--年积日-儒略日-GPS周一、年积日、儒略日、GPS周等简介儒略历公元前46年,罗马执政官儒略·凯撒颁布了儒略历。儒略历每年12个月,平年365天,闰年366天。除2月外,单数月份31天,偶数月份30天。2月份平年29天,闰年30天。每隔3年置一闰年。儒略历是纯太阳历,每年的平均长度是365.25天。每400年,儒略历与回归年大约相差3天,即:(365.25-365.242189)*400=3.1244凯撒为了纪念改历成功,将他出生的7月从Quintilis改成自己的名字Julius儒略日和简化儒略日在天
2、文学有一种连续纪日的儒略日(JD),它以儒略历公元前4713年1月1日的GMT正午为第0日的开始。还有一种简化儒略日(MJD):MJD=JD-2400000.5MJD的第0日是从公历1858年11月17日的GMT零时开始的。我写完前一个句号时的MJD是53583.22260。小数部分是以UTC时间在当天逝去的秒数除以86400得到的。0.22260约为UTC时间的5:20,加上中国的时区就是13:20。年积日年积日是仅在一年中使用的连续计时法。每年的1月1日计为第1日,2月1日为第32日。平年的12月31日为第36
3、5日,闰年的12月31日为第366日。格里高利历——公历公元1582年3月1日,罗马教皇格里高利十三世颁布了格里高利历,将不能被4整除的世纪年算作平年,这就是我们现在使用的公历。在公历中,每400年有97个闰年,平均每年的长度是:(365*400+97)/400=365.2425天每400年,公历与回归年大约相差0.1244天,即:(365.2425-365.242189)*400=0.1244GPS时、GPS周、周内秒GPS周(GPSWeek)是GPS系统内部所采用的时间系统。时间零点定义的为:1980年1月5日
4、夜晚与1980年1月6日凌晨之间0点。最大时间单位是周(一周:604800秒)。每1024周(即7168天)为一循环周期。第一个GPS周循环点为1999年8月22日0时0分0秒。即从这一刻起,周数重新从0开始算起。星期记数规则是:Sunday为0,Monday为1,以此类推,依次记作0~6,GPS周记数(GPSWeekNumber)为“GPS周星期记数”。表示方法:从1980年1月6日0时开始起算的周数加上周内时间的秒数(从每周周六/周日之夜开始起算的秒数,例如:1980年1月6日0时0分0秒的GPS周:第0周,第
5、0秒。例如:2004年5月1日10时5分15秒的GPS周:第1268周,第554715秒,GPS周记数(GPSWeekNumber)为12686,第554715秒。三、程序实现成果(具体代码见附件)1.gps2cal将GPS周和周内秒转换到公历时间functioncal=gps2cal(gpst)%gps2cal将GPS周和周内的秒转换到公历GPS时间%cal=gps2cal(week,sec)返回的公历是1x6矩阵,6列分别为年月日时分秒%gpst:1x2矩阵,2列分别为GPS周和周内的秒%GPS从MJD4424
6、4开始mjd=44244+(gpst(1)*86400*7+gpst(2))/86400;cal=mjd2cal(mjd);2.gps2cal1由公历日期和GPS周内秒计算公历时间functioncal=gps2cal1(date,tow)%gps2cal1由公历日期和gps周内秒计算公历GPS时间%cal=gps2cal1(date,tow)返回的公历是1x6矩阵,6列分别为年月日时分秒%date:1x3矩阵,3列分别为公历年月日%tow:GPS周内秒mjd=cal2mjd(date);%GPS从MJD44244
7、开始week=floor((mjd-44244)/7);cal=gps2cal([week,tow]);3.cal2gps将公历GPS时间转换到GPS周和周内秒functiongpst=cal2gps(cal)%cal2gps将公历GPS时间转换到GPS周和周内的秒。%gpst==cal2gps(cal)返回的gpst是1x2矩阵,2列分别为GPS周和周内秒%cal:1x6矩阵,6列分别为年月日时分秒。构造cal时可以省略末尾的0iflength(cal)<6cal(6)=0;endmjd=cal2mjd(cal)
8、;%GPS从MJD44244开始elapse=mjd-44244;week=floor(elapse/7);elapse=elapse-week*7;%周内天数gpst=[weekround(elapse*86400)];4.mjd2cal将简化儒略日转换到公历时间functioncal=mjd2cal(mjd)%mjd2cal将简化儒略日转换到公历年月日时
此文档下载收益归作者所有