【发布时间】:2018-07-09 13:07:51
【问题描述】:
我有一个程序从某个协议获取日期,格式为DD/MM/YYYY。
问题是我需要知道那一天的信息(星期几,一年中的哪一天......),我不知道该怎么做。
通常,当我想获取一天信息时,我使用 time(time_t*) 并将结果转换为 tm struct 使用 localltime_r(tm*, time_t*) 然后我就拥有了我需要的一切。
但在这种情况下,这不是当前时间(所以我不能使用 time(time_t*)),除了日期我什么都没有。
我可以创建一个新的 tm struct 并且只填写 tm_year、tm_mon、tm_mday 并使用 mktime(tm*),但我不确定这是否会给我所需日期的正确详细信息。
【问题讨论】:
-
您使用的是 C 还是 C++?
-
为什么它不起作用?
tm struct绝不会绑定到 当前 日期。 -
"使用 mktime(tm*),但我不确定这是否会给我所需日期的正确详细信息" - 只要您将其他字段归零,是的,它应该可以工作。
-
我不确定在未知字段中输入零是否会提供正确的信息。我会试一试
-
阅读documentation for
mktime。如果您填写您知道的日期(包括月份和日期),并致电mktime,mktime将为您计算星期几和一年中的星期几。您应该将时间设置为 12:00:00,并将tm_isdst设置为 0 或 -1。