如何计算从那天以内的天数?

66i88 2010-03-12 02:54:34
LARGE_INTEGER SysTime , LocalTime;
KeQuerySystemTime(&SysTime);
ExSystemTimeToLocalTime(&SysTime, &LocalTime);

RtlTimeToTimeFields(&SysTime,&tf);
DbgPrint(" %d %d %d %d %d",tf.Year,tf.Month,tf.Day,tf.Hour,tf.Minute);
RtlTimeToTimeFields(&LocalTime,&tf);
DbgPrint(" %d %d %d %d %d",tf.Year,tf.Month,tf.Day,tf.Hour,tf.Minute);
ULONGLONG day= LocalTime.QuadPart * 100 /1000 /1000 /1000 /(24*60*60);
DbgPrint("day %d",day); // 错的

哪错?

谢谢
...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
船过水无痕 2010-03-12
  • 打赏
  • 举报
回复
ULONGLONG day= LocalTime.QuadPart * 100 /1000 /1000 /1000 /(24*60*60);
//真不知道这是什么意思? /(24 * 60 * 60) 不就是天数了吗? 干嘛还除1000 * 1000 * 1000呢?
cqking 2010-03-12
  • 打赏
  • 举报
回复
如何计算从那天(1601-01-01)以内的天数?

LARGE_INTEGER SysTime , LocalTime;
KeQuerySystemTime(&SysTime);
ExSystemTimeToLocalTime(&SysTime, &LocalTime);

RtlTimeToTimeFields(&SysTime,&tf);
DbgPrint(" %d %d %d %d %d",tf.Year,tf.Month,tf.Day,tf.Hour,tf.Minute);
RtlTimeToTimeFields(&LocalTime,&tf);
DbgPrint(" %d %d %d %d %d",tf.Year,tf.Month,tf.Day,tf.Hour,tf.Minute);//本地日期,这里是正确的
ULONGLONG day= LocalTime.QuadPart * 100 /1000 /1000 /1000 /(24*60*60);
DbgPrint("总天数 %d",day); // 错的


天数 = LocalTime.QuadPart * 100 /(1000*1000*1000) /(24*60*60)

LocalTime.QuadPart * 100 //一共 纳秒 数
1 秒 = 1000*1000*1000 纳秒
1 天 = 24*60*60 秒


计算的结果不正确.
求解.

21,618

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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