鉴于一些短整数及其代表的日期,是否有任何系统的方法来确定它们如何以这种格式存储并解码其他日期?存储的数据来自另一个软件。
我最初认为天数由其中一个字节表示,因为5月1日的第一个字节减去2月11日的第一个字节确实等于正确的天数(2011年为79天)。但它不能那么简单,不仅因为8位只能存储256天,而且因为2000年之前的日期只能存储年份,只有两个字节。
以下是我正在使用的内容,但请将列标题添加到一些盐中。
DDDDDDDD YYYYYYYY DD-MM-YY
01011010 10001010 1955
10110010 10010001 1960
11000000 10010001 1961
11100011 11000011 1996
01010001 11000110 1997
00001101 11001000 1999
10000000 11001001 10-02-00
11010101 11001010 16-01-01
10101010 11001101 11-01-03
00000101 11010000 05-09-04
10011101 11010101 07-08-08
11010000 11010101 27-09-08
00010000 11010110 30-11-08
00110100 11010110 05-01-09
11111110 11010110 26-07-09
10011101 11010111 01-01-10
10110111 11011000 10-10-10
00110011 11011001 11-02-11
00111010 11011001 18-02-11
10000010 11011001 01-05-11
10000101 11011001 04-05-11
01101100 11100110 19-05-20
我还看到30-11-08与05-01-09具有相同的第二个字节,相反,2010年的两个日期在第二个字节中具有不同的值。
编辑:感谢答案和一些研究,我看到这个时代是1858年11月17日。这是一个标准格式,称为改良朱利安日。答案 0 :(得分:3)
从过去的某些时间看起来好像是〜1858年(我没有计算出所有的闰年魔法),但是一年中的某一天只显示在现有应用中多年> = 2000。标记为year的字节是高位字节,而“day”字节是低位字节。
答案 1 :(得分:2)
它不仅仅是16位天以来的纪元价值吗? 2000年2月10日是51584. 2011年2月18日是55610.在 - (11 * 365)+ 3个闰日之间有4026天,而在一个月中的8天差异。这个时代的开始似乎大约是1860年。或者,更有可能的是,高阶1位在1950年1月1日开始。