填充struct tm

时间:2015-02-25 13:35:19

标签: c++ c time dayofweek chrono

标准C / C ++库中是否存在填充struct tm

的内容

更具体地说明我的问题:我希望能够提供一个日期并从中填充struct tm(例如:1-1-2000 00:00:01。)对于大多数字段我可以直接插入数据,但我不知道tm_wdaytm_isdst

我真的在寻找一种方法来填充这两个而不用编写一些复杂的一周状态机。

2 个答案:

答案 0 :(得分:5)

mktime听起来是你最好的选择。传递给它的struct tm不需要具有指定范围内的值;它会对字段进行规范化,包括重新计算tm_wdaytm_yday。要让其尝试确定DST是否生效,请在致电tm_isdst之前将mktime成员设为否定。

如果您要从字符串转换,可以使用get_time操纵器将信息提取到tm

答案 1 :(得分:3)

您想要mktime

  

tm_wdaytm_yday组件的原始值   结构被忽略,以及其他组件的原始值   不限于上述范围。

那是mktime可以用作某种规范化函数,确保所有字段都是一致的。