求日期时间算法,急!

以下是一组数据(文件里存储的16进制数 及 日期时间值):

40 21 D3 81 D1 41 2007-3-26 12:31:01
00 C6 CA 81 D1 41 2007-3-26 10:08:24

80 DC F0 F3 D0 41 2006-1-20 0:50:58
00 E4 D9 F3 D0 41 2006-1-19 18:18:56

00 70 EC F3 D0 41 2006-1-19 23:35:28
00 E4 D9 F3 D0 41 2006-1-19 18:18:56
00 00 D9 F3 D0 41 2006-1-19 18:03:44
00 00 00 F3 D0 41 2006-1-17 4:20:16
00 00 00 00 D0 41 2004-1-10 21:37:04
00 00 00 00 00 41 1970-1-2 20:24:32
00 00 00 00 01 41 1970-1-2 22:41:04
00 00 00 00 02 41 1970-1-3 0:57:36
00 00 00 00 03 41 1970-1-3 3:14:08
00 00 00 00 10 41 1970-1-4 8:49:04

00 00 00 00 00 01 1970-1-1 8:00:00
00 00 00 00 00 02 1970-1-1 8:00:00
00 00 00 00 00 40 1970-1-1 8:00:02
00 00 00 00 00 41 1970-1-2 20:24:32

求之间的对应关系,分不够可以再加,只要能解决问题就行。
[845 byte] By [killer000777-lx_cat] at [2008-1-9]
# 1
这和日期时间算法有什么关系?

00 00 00 00 00 01 1970-1-1 8:00:00
00 00 00 00 00 02 1970-1-1 8:00:00
# 2
00 C6 CA 81 D1 41 2007-3-26 10:08:24

80 DC F0 F3 D0 41 2006-1-20 0:50:58
00 E4 D9 F3 D0 41 2006-1-19 18:18:56

00 70 EC F3 D0 41 2006-1-19 23:35:28
00 E4 D9 F3 D0 41 2006-1-19 18:18:56
00 00 D9 F3 D0 41 2006-1-19 18:03:44
00 00 00 F3 D0 41 2006-1-17 4:20:16
00 00 00 00 D0 41 2004-1-10 21:37:04
00 00 00 00 00 41 1970-1-2 20:24:32
00 00 00 00 01 41 1970-1-2 22:41:04
00 00 00 00 02 41 1970-1-3 0:57:36
00 00 00 00 03 41 1970-1-3 3:14:08
00 00 00 00 10 41 1970-1-4 8:49:04

00 00 00 00 00 01 1970-1-1 8:00:00
00 00 00 00 00 02 1970-1-1 8:00:00
00 00 00 00 00 40 1970-1-1 8:00:02
00 00 00 00 00 41 1970-1-2 20:24:32
killer000777-lx_cat at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 3
楼主应该说一下这些数据怎么来的,
正如楼上提到的,不可能有这种对应
而且16进制中有效数据越来越少,倒是有点像是压缩
# 4
左边是六字节的数据结构,右边是对应的日期时间,希望高手能指点一下之间的对应关系(算法)

To Jamesonang:
00 00 00 00 00 01 1970-1-1 8:00:00
00 00 00 00 00 02 1970-1-1 8:00:00

这两项的确存在不唯一对应,我也很奇怪。
killer000777-lx_cat at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 5
Codefund论坛有BUG,当前提交的数据中TAB能显示,在UP后TAB就不能显示了!!
killer000777-lx_cat at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 6
我猜测是日期时间是从1970-1-1 8:00日开始的
00 00 00 00 00 01
00 00 00 00 00 02
这两项可能对于算法是无效的。
killer000777-lx_cat at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 7
没懂楼主的意思 还是先说下数据来源
casablancaliu-casablanca at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 8
好象是从1970-1-1 00:00:00秒起始,从左边第一个字节的第7位(2^0)开始按二进制值作为单位(秒)递增,字节顺序自左向右递增(先存储低字节),这样六个字节就能无精度损失的保存好几万年的日期/时间(类似条形码),但最后一个字节(最右边)有所不同,正在研究中...
killer000777-lx_cat at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 9
第7位(2^6)
killer000777-lx_cat at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 10
同意楼上的说法
时间只不过是计算出到current time的秒数
好象没什么算法吧
# 11
简单的方案就是--神经网络,^_^
tedachun at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 12
实在不明白楼主的意思

感觉这些数据没什么特殊的
# 13
谁能说一下最后两个字节的含义 ...DX 41
killer000777-lx_cat at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 14
不象是DOS的文件
LZ
wang430903-味觉全无 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 15
应该还包含有文件大小,可读,可写等其他属性
wang430903-味觉全无 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 16
看起来,没有规律。
ahjoe-强哥 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 17
这个不可能包含一个完整的时间,据我估计这不是任何一个时间的编码.你应该是把对应关系搞错了!

00 00 00 00 00 01 1970-1-1 8:00:00
00 00 00 00 00 02 1970-1-1 8:00:00
00 00 00 00 00 40 1970-1-1 8:00:02
00 00 00 00 00 41 1970-1-2 20:24:32
这四行数据就可以说明!

这四行数据的熵太小,不可能分布到后面的时间.
yyc520-成事不足 at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 18
呵呵 菜鸟分析一下(暂时只能说明1970年的代码):

00 00 00 00 00 01 1970-1-1 8:00:00
00 00 00 00 00 02 1970-1-1 8:00:00
00 00 00 00 00 40 1970-1-1 8:00:02
00 00 00 00 00 41 1970-1-2 20:24:32 //很多人对41不理解,想想16进制的41是10进制的65
而ASC2码中65对应的是A,而英文中总是把A当作
开始的象征
所以我认为它是系统开始计数的时间,但是为什么01和02都是8:00:00,而40是8:00:02呢?
这点我也没想明白。我推理40相当于开启定时装置,而据我估计1970-1-1 8:00:00~1970-1-1 8:02:00之间是应用程序的启动,01,02与40是所必需添加的三个事件(就像为什么我们求1+2+...+100一样,只输入前两个和最后一个),至此1970-1-1 8:00:02,整个应用程序启动完毕。而1970-1-2 20:24:32是程序正式起作用的时间,至此16进制最末尾的41代码已无具体作用。这也是为什么后来的里面都有41的原因,他已经完成了它的使命。报告了程序开始起作用的时间。

00 00 00 00 00 41 1970-1-2 20:24:32 //从这里开始41我们就刨除不管了
00 00 00 00 01 41 1970-1-2 22:41:04 //那么我们看到的还是最小的数据
00 00 00 00 02 41 1970-1-3 0:57:36 //16进制的01,02,03,以及10(即16)
00 00 00 00 03 41 1970-1-3 3:14:08
00 00 00 00 10 41 1970-1-4 8:49:04

呵呵 本人感到无聊,所以哈哈 把这些时间差求了出来 哈哈
这里的1代表的是2:16:32,即8192秒。截至1970-1-4 8:49:04,这些数据都是成立的。
从这里暂时看出它是一个计时装置,即时间每加2:16:32即8192秒,数字就加1。

先暂时告一段落,老妈催我睡觉了。呵呵
clementchen at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...
# 19
解密:
前面漏掉两个字节了,总共8个字节。
很常用的一种表示方法。
数据类型double。
表示从1970-1-1 0:0:0.0
开始的时间,以秒为单位。
mathe at 2007-10-19 > top of Msdn China Tech,专题开发,技术,项目,数据结构,算法...