加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MJD日期码转换UTC时间

(2013-05-24 19:06:52)
标签:

it

分类: linux
所使用的符号:
MJD: 修正的儒略日期,指由公元前4713年1月1日,协调世界时中午12时开始所经过的天数,多为天文学家采用,用以作为天文学的单一 历法,把不同历法的年表统一起来。儒略日是一种不用年月的长期纪日法,简写为JD。是由法国纪年学家史迦利日(Joseph Justus Scliger 1540年-1609年)在1583年所创,这名称是为了纪念他的父亲——意大利学者Julius Caesar Scaliger(1484 年-1558年)。以儒略日计日是为方便计算年代相隔久远或不同历法的两事件所间隔的日数。
UTC:世界协调时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC。它从英文“Coordinated Universal Time”/法文“Temps Universel Cordonné”而来。这套时间系统被应用于许多互联网和万维网的标准中,例如,网络时间协议就是协调世界时在互联网中使用的一 种方式。在军事中,协调世界时区会使用“Z”来表示。又由于Z在无线电联络中使用“Zulu”作代称,协调世界时也会被称为"Zulu time"。 中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8。
Y: 从1900年开始(例如:对于2003年,Y=103)
M: 从1到12月
D: 从1到31日
WY: 从1900 年算起的星期数
WN: 根据ISO 8601 规定的星期数
WD: 从星期1到星期日(7)
K,L,M′,W,Y′: 临时变量
Mod 7: 模7,被7除之后的余数(0至6)
a) 如何从MJD中计算Y,M,D,见式(B1)、式(B2)、式(B3)、式(B4)、式(B5)。
Y = int[(MJD-15078.2)/365.25]……………………………………………(B1)
M = int{[MJD-14956.1-int(Y * 365.25)]/30.6001}………………………(B2)
D = MJD-14956-int(Y*365.25)-int(M*30.6001)………………………(B3)
如果M == 14或M == 15,那么K = 1;否则K = 0
Y = Y+K…………………………………………………………………………(B4)
M = M-1-K*12……………………………………………………………………(B5)
b) 如何根据Y,M,D计算MJD,见式(B6)
如果M == 1或者M == 2那么L = 1;否则L = 0
MJD = 14956+D+int[(Y-L)*365.25]+int[(M+1+L′*12)*30.6001]…………(B6)
c) 如何根据MJD计算WD,见式(B7)
WD = [(MJD+2)Mod 7]+1…………………………………………………………(B7)
mod为取余运算。
d) 如何根据WY,WN,WD计算MJD,见式(B8)
MJD = 15012+WD+7*{WN+int[(WY*1461/28)+0.41]}………………………….(B8)
e) 如何根据MJD计算WY,WN,见式(B9)、式(B10)、式(B11)
W = int[(MJD/7)-2144.64]…………………………………………………….(B9)
WY = int[(W*28/1461)-0.0079]………………………………………………(B10)
WN = W-int[(WY*1461/28)+0.41]…………………………………………….(B11)
例子: MJD = 45 218             W = 4 315
Y =(19)82             WY=(19)82
M = 9(9月)            WN = 36
D = 6                   WD = 1(1月)
注:以上公式适用于1900年3月1日至2100年2月28日。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有