从VFP文件读出Datetime的数据为8位数据
例如读出格式为
7E 76 25 00 00 00 00 00
对应的时间是
09/13/09 00 12:00:00 AM
vfp 中的日期部分采用儒略计日(注意:不是儒略历),儒略计日常用于天文计日,是从公元前4713 年1月1日开始计数的,vfp 中当前日期的儒略计日为 sys(11,date()),例如今天就是 2455148,将这个数字转换成 16 进制表示就是 6C 76 25 00,用 vfp 转换的代码是:
? STRCONV(BINTOC(VAL(SYS(11,DATE())),'4rs'),15)
上面的函数需要 Vfp9 才能识别,用 vfp6 的话要你自己写函数来转换
儒略日的计算
a=[(14-month)/12]
y=year+4800-a
m=month+12a-3
则格里历日期的中午时候
JDN=day+[(153m+2)/5]+365y+[y/4]-[y/100]+[y/400]-32045
若日期为儒略历,则
JDN=day+[(153m+2)/5]+365y+[y/4]-32083
简化儒略日
由于儒略日数字位数太多,国际天文学联合会于1973年采用简化儒略日(MJD),其定义为 MJD = JD - 2400000.5。MJD相应的起点是1858年11月17日世界时0时。 例如1979年10月1日零时儒略日数为2,444,147.5。天文年历附表载有各年每月零日世界时12时的儒略日数。