免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2579 | 回复: 4

使用<time.h>下的函数如何实现求某个日期后经过多少天后的日期呢?急,谢谢! [复制链接]

论坛徽章:
0
发表于 2009-11-06 11:13 |显示全部楼层
5可用积分
好像STL下没有date相关的类,我只有使用<time.h>下定义的函数了。
那如何求某个日期后经过多少天后的日期呢?
如“19000101”,经过40000天后的具体日期,如何求呢?谢谢!

论坛徽章:
0
发表于 2009-11-06 11:44 |显示全部楼层
1 先构建 190001 对应的tm 结构
2 maketime 获取对应秒数 t1;
3 t1秒数 += 对应间隔 (3600 * 365 * n)  注意考虑闰年的情况
4 把t1 转成要的内容

注意 time 是 1970 年开始的 1900 的话,所以 还要往前推算70年,
要么自己算 要么用微软的那个时间结构, 思路差不多。

知道个思想就可以了。细节自己扣

论坛徽章:
0
发表于 2009-11-06 11:49 |显示全部楼层

回复 #1 richardzhangs 的帖子

习惯用timestamp作为中转。
将开始时间转为timestamp,加上40000天对应的timestamp,再将timestamp格式化为datetime格式。
如果不清楚要用到那些api,google下吧

论坛徽章:
0
发表于 2009-11-06 14:45 |显示全部楼层

回复 #2 benjiam 的帖子

有个问题,从19000101算起,经过40000天后得到的time_t溢出了,超过了long int 的范围啊

论坛徽章:
0
发表于 2009-11-06 20:18 |显示全部楼层
现在的time_t 实现有64 位 是没有问题的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP