【发布时间】:2012-02-03 12:12:50
【问题描述】:
我正在为日期时间库不可用的设备开发代码(注意:浮点数也不可用),所以我必须做数学 myslef。
我的时间戳是从 2000 年 1 月 1 日开始的秒数(UTC 时间)。 在设备配置中我有:
- 当前时区与 UTC 相差小时数 +/-
- dst 作为要添加的小时数
我需要知道:
- 当前星期几
- 当前时间
计算当前时间非常简单:
timestamp % 86400 # seconds from midnight
计算星期几(1-星期一,7-星期日):
dayofweek = (timestamp - 86400) % (86400*7) / 86400
if dayofweek = 0:
dayofweek = 7
注释:
- 86400 = 一天中的秒数
但在计算之前,我应该: 1.添加时区小时 2.增加夏令时时间
问题是如何计算是否应添加 DST 小时(仅适用于欧洲夏令时)?我需要有效地做到这一点,因为我的计算能力非常有限,我需要尽快做到这一点:-)
【问题讨论】:
-
@selbie 闰年与星期几有什么关系?在闰年,我们将 1 天添加到一个月,而不是一天添加到一周。我不按年划分,我按天/周划分。
-
我的错。闰年对于计算年/月/日确实很重要。但是您对于星期几是正确的,这无关紧要。
标签: math language-agnostic timestamp