VFP 6.0中Datetime在内存中的格式

来源:互联网 发布:mac添加qq企业邮箱 编辑:程序博客网 时间:2024/06/15 03:02

从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时的儒略日数。

 

原创粉丝点击