【发布时间】:2016-03-12 15:20:59
【问题描述】:
我需要构建一个函数,如果是夏季时间,则返回“1”,如果是冬季,则返回“0”。
只是想询问一个算法来开始或如何开始会有所帮助。
【问题讨论】:
-
一个可能的选项是
time()和localtime()的组合来自<ctime>。这在 C 中有效,也应该在 C++ 中。这是否是一个好的选择是另一回事,但不这样做并非易事。这将或多或少地报告给定时间的冬季与夏季时间的状态。 -
一种主要在全球范围内有效的算法是:1) 获取 1 月 1 日和 7 月 1 日的偏移量。如果相同,则不适用夏令时,返回
0。 2) 获取 current 偏移量。 3) 如果当前偏移量等于两个偏移量中较小的,则标准时间生效,返回0,否则DST生效,返回1.除非由于非 DST 原因(例如基本偏移量更改)而发生偏移量变化,否则这一点是正确的。
标签: c++ algorithm function dst