| 導購 | 订阅 | 在线投稿
分享
 
 
 

时间加减 C语言

2009-04-05 15:12:15  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
問題描述:
  C语言 时间存储格式为压缩BCD码 7字节 CCYYMMDDHHMMSS 各位的进位制不同 算起来太麻烦了 有没有比较巧妙的算法
參考答案:
  在VC中我是这样弄的:

  SYSTEMTIME time;

  ::GetSystemTime(&time);\\取当前时间,time为一个临时的变量

  CTime now=time;\\将当前时间存到CTime变量中

  \\输入要进行对比的时间存入time中,比如下面(对比时间是2006年8月20日):

  time.wYear=2006;

  time.wMonth=8;

  time.wDay=20;

  CTime cmptime=time;\\将要对比的时间放到另一个CTime变量中

  CTimeSpan overtime=now-cmptime;\\比较时,两时间直接作差,保存在CTimeSpan变量中,这个值有正负,overtime虽然是CTimeSpan类型的,但是用法和CTime一样

  int overdays=overtime.GetDays();\\取天数差距,本例中就为9(今天是8月29日),如果刚才now-cmptime换成cmptime-now,现在的值就是-9

  int overdays=overtime.GetMonths();同上,取月差距,其他方法一样,年,分,秒都能比较

  自己回去试一试吧,应该有满意的效果!

  我也是琢磨了很长时间才弄出来,个人觉得算是比较方便的方法了,正如你所说,时间的计算比较复杂,容易出错,不如让提供好的MFC类对时间进行处理,省去不必要的麻烦!

  
 
 
 
[b]分类:[/b] 电脑/网络 >> 程序设计 >> 其他编程语言[br][b]问题描述:[/b][br]C语言 时间存储格式为压缩BCD码 7字节 CCYYMMDDHHMMSS 各位的进位制不同 算起来太麻烦了 有没有比较巧妙的算法[br][b]参考答案:[/b][br]在VC中我是这样弄的: SYSTEMTIME time; ::GetSystemTime(&time);\\取当前时间,time为一个临时的变量 CTime now=time;\\将当前时间存到CTime变量中 \\输入要进行对比的时间存入time中,比如下面(对比时间是2006年8月20日): time.wYear=2006; time.wMonth=8; time.wDay=20; CTime cmptime=time;\\将要对比的时间放到另一个CTime变量中 CTimeSpan overtime=now-cmptime;\\比较时,两时间直接作差,保存在CTimeSpan变量中,这个值有正负,overtime虽然是CTimeSpan类型的,但是用法和CTime一样 int overdays=overtime.GetDays();\\取天数差距,本例中就为9(今天是8月29日),如果刚才now-cmptime换成cmptime-now,现在的值就是-9 int overdays=overtime.GetMonths();同上,取月差距,其他方法一样,年,分,秒都能比较 自己回去试一试吧,应该有满意的效果! 我也是琢磨了很长时间才弄出来,个人觉得算是比较方便的方法了,正如你所说,时间的计算比较复杂,容易出错,不如让提供好的MFC类对时间进行处理,省去不必要的麻烦!
󰈣󰈤
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号 wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味著赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有