首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(详细地)如何计算从1900年到现在使用boost的持续时间?

问(详细地)如何计算从1900年到现在使用boost的持续时间?
EN

Stack Overflow用户
提问于 2012-11-14 04:20:30
回答 1查看 1.5K关注 0票数 1

作为标题,如何计算从1900年到现在使用boost的持续时间?

编辑:很抱歉之前的问题太短了。我会再描述一下我的问题。关于将生日保存到数据库作为整数号,我有问题。我创建了四个函数,用途如下:

  1. 按时间换整数(按日计算): int ti=time_to_int(日期为( 2012,1,1),0);=> ti =15430;//1970年至2012年的天数
  2. 整数到分页时间: ptime pt = int_to_time(15430);
  3. ptime to string: ptime (日期(2012,1,1),0);字符串s= time_to_string(pt,"%d.%m.%Y");
  4. 字符串到分页时间: ptime pt = string_to_time(%d.%m.%Y);

问题:上面,我从1970年起就使用了时代,而且一切都很好。那么,如何将01/01/1945转换为整数呢?我认为这需要使用从1900年开始的时代。但是,当从1900将01/01/2012转换为int时,它返回负数,因为“我认为”滴答数以毫秒溢出(32位)为单位。使用一些方法手动计算日期到int是可以的,但是将int转换回日期似乎不太好。我想用boost来做这个。

有什么建议吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-11-14 05:04:29

整数(int)不足以容纳1900年以来的秒数。它只能维持68年左右。您需要使用一个长(64位)。Boost的持续时间将允许您访问秒的长度。您也可以使用@jogojapan提到的天数。然而,白天的长度并不总是一样的(23-25小时),所以有时候在白天跟踪事情更容易出错(如果你小心的话,应该会很好)。

看看文档中的一些例子。您可以减去两个ptime对象以获得一个time_duration:

代码语言:javascript
复制
time_duration td = ptime1 - ptime2;
long secElapsed = td.total_seconds();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13372988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档