UTC时间(40位字段表示)

来源:互联网 发布:java字符串拷贝函数 编辑:程序博客网 时间:2024/06/03 20:29

40位字段表示时间:前16位表示MJD日期码;后24位按4位BCD编码,共6个数字表示精确到秒的时间

 

 

 

 

                                                         图 B.1 MJD 和 UTC 之间的转换图


下面以公式给出另外五种转换的路线图。
所使用的符号:
MJD: 修正的儒略日期
UTC: 世界协调时。
Y: 从1900年开始(例如:对于2003年,Y=103)。
M: 从1到12月。
D: 从1到31日。
WY: 从1900 年算起的星期数。
WN: 根据ISO 8601 规定的星期数。
WD: 从星期1到星期日(7)。
K,L,M ́,W,Y ́: 临时变量。
×: 乘法。
int: 取整,忽略了余数。
Mod 7: 模7,被7除之后的余数(0至6)。
a) 如何从MJD中计算Y,M,D,见式(B.1)、式(B.2)、式(B.3)、式(B.4)、式(B.5)。
Y ́ = int[(MJD-15078.2)/365.25......................................................(B.1)
M ́ = int{[MJD-14956.1-int(Y ́×365.25)]/30.6001}............................(B.2)
D = MJD-14956-int(Y ́×365.25)-int(M ́×30.6001)............................(B.3)
如果M ́ == 14或M ́ == 15,那么K = 1;否则K = 0
Y = Y ́+K........................................................................................(B.4)
M = M ́-1-K×12................................................................................(B.5)
b) 如何根据Y,M,D计算MJD,见式(B.6)
如果M == 1或者M == 2那么L = 1;否则L = 0
MJD = 14956+D+int[(Y-L)×365.25]+int[(M+1+L×12)×30.6001]...............(B.6)
c) 如何根据MJD计算WD,见式(B.7)
28
GY/T 220.2—2006
WD = [(MJD+2)Mod 7]+1..................................................................(B.7)
d) 如何根据WY,WN,WD计算MJD,见式(B.8)
MJD = 15012+WD+7×{WN+int[(WY×1461/28)+0.41]}...............................(B.8)
e) 如何根据MJD计算WY,WN,见式(B.9)、式(B.10)、式(B.11)
W = int[(MJD/7)-2144.64].............................................................(B.9)
WY = int[(W×28/1461)-0.0079]......................................................(B.10)
WN = W-int[(WY×1461/28)+0.41]....................................................(B.11)
例子: 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日。

原创粉丝点击