如何操作c 11中的日期/日期时间?
发布时间:2020-12-16 10:24:04 所属栏目:百科 来源:网络整理
导读:这很令人尴尬,但我很难对日期时间进行简单的操作. 这是我基本上尝试使用c 11实现的c#版本; DateTime date1=new DateTime(4,5,2012);DateTime date2=new DateTIme(7,8,2013);int day1=date1.Days;TimeSpan ts=d2-d1;int diffDays=ts.Days; 我尝试了什么? std
这很令人尴尬,但我很难对日期时间进行简单的操作.
这是我基本上尝试使用c 11实现的c#版本; DateTime date1=new DateTime(4,5,2012); DateTime date2=new DateTIme(7,8,2013); int day1=date1.Days; TimeSpan ts=d2-d1; int diffDays=ts.Days; 我尝试了什么? std::tm tm; tm.tm_year=113; tm.tm_mon=0; tm.tm_wday=0; std::time_t tt=mktime(&tm); std::chrono::system_clock::time_point then = std::chrono::system_clock::from_time_t(tt); std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); auto e1 = std::chrono::duration_cast<std::chrono::hours>(now - then).count(); e1(379218)的值毫无意义. 我看了一下chrono,它是日期时间的c 11标准库,但是我找不到如何创建int year = 2012,int month = 2,int day = 14的日期的示例. PS:chrono是否足以处理c 11中的日期/时间/时区?是否需要time.h? 解决方法
您需要从tm初始化所有字段,从开始
std::tm tm = {0,0}; 如果没有这个,其他字段(之后没有明确设置的字段)将包含任意值.转换也会标准化值,这意味着如果字段tm_hour包含123456789,它将在您指定的日期添加这么多小时.这就是解释e1的那些无意义值的方法.如果显式初始化所有字段,它将允许您的示例返回有意义的值,尽管您可能需要设置更多字段,如isdst,以使其适用于所有情况. 我必须承认,我没有使用chrono,因为我发现所需的语法过于冗长,并且我继续使用自己的类来包装C风格的时间函数.当然,这不是关于< chrono>的质量和功能的陈述,也许我应该开始使用它:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- ios – React-Native离线捆绑包 – 图像未显示
- 敏捷联盟Gordon Pask奖获得者讲“测试驱动开发”
- ruby-on-rails – Rails缓存每天午夜到期
- VB.net版机房收费系统——结账功能实现(调错与优
- sqlite3 按编辑框中的输入值查找数据库相符内容
- c# – 如何在asp.net mvc 5中通过actionlink传递
- react动画难写?试试react版transformjs
- Ajax.Net Professional——A quick guide how to
- postgresql – 类型interval的输入语法无效
- oracle – 使用递归从查询中的一个表中获取几个r
热点阅读