VFP 6.0中Datetime在内存中的格式

zhengcom 2009-11-12 04:06:21
从VFP文件读出Datetime的数据为8位数据
例如读出格式为
7E 76 25 00 00 00 00 00
对应的时间是
09/13/09 00 12:00:00 AM

查资料了知道前面四位是1900-1-1到09/13/09的天数,后面4位为午夜12点到当前时间的毫秒数
问题是这个天数和毫秒数是以什么格式的转换过来,请教高手。
...全文
232 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengcom 2009-11-12
  • 打赏
  • 举报
回复
哦,谢谢,原来是从公元前4713年开始算的,难怪我算来算去都是都不对。
都市夜猫 2009-11-12
  • 打赏
  • 举报
回复
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 的话要你自己写函数来转换
zhengcom 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 apple_8180 的回复:]
09/13/09 00 12:00:00 AM

09/13/09 是月日年格式吧?是1909年还是2009年?
另外 日期和时间之间的 00 是什么?
[/Quote]

7e 76 25 00 00 00 00 00 对应的应该是 2009-11-30 00:00:00
zhengcom 2009-11-12
  • 打赏
  • 举报
回复
是的,是这个,请教一下是怎么算的?
都市夜猫 2009-11-12
  • 打赏
  • 举报
回复
7e 76 25 00 00 00 00 00 对应的应该是 2009-11-30 00:00:00 吧 ?
十豆三 2009-11-12
  • 打赏
  • 举报
回复
09/13/09 00 12:00:00 AM

09/13/09 是月日年格式吧?是1909年还是2009年?
另外 日期和时间之间的 00 是什么?

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧