如果您要将时间增量转换为类似于 ISO 8601 的时间,则只需将时间增量偏移自 1907-01-01 以来对应于 0(开始)时间的秒数,然后用于转换localtime为struct tm.
由于每月的天数取决于具体的月份和年份,因此尝试将增量秒转换为比天更大的时间单位而不考虑开始和结束时间在实际日历上的位置将会令人担忧。有错误。
就像芭丝谢芭提到的那样,这取决于您需要的准确程度。
我见过一些算法回避了简单假设一个月为 30 天(因此一年只有 360 天)的问题。如果这就是您想要做的,那么尝试使用localtimeill 会带来更多麻烦,而不是值得的。
如果您想“完全”正确地执行此操作,则必须将开始时间和结束时间转换为实际的与纪元对齐的time_t值,并使用某种日历感知的日期计算来计算两者之间的时间。localtime不会削减它(而且这甚至没有考虑到时间增量跨越 DST 边界将如何减少一个小时)。
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |