永发信息网

怎样在日期上加 N 天?怎样取得两个日期的时间间隔?

答案:2  悬赏:10  手机版
解决时间 2021-04-13 12:15
怎样在日期上加 N 天?怎样取得两个日期的时间间隔?
最佳答案
ANSI/ISO 标准 C 函数 mktime() 和 difftime()对这两个问题提供了一些有限的支持。mktime() 接受没有规格化的日期, 所以可以用一个日期的 struct tm 结构, 直接在 tm mday 域进行加或减, 然后调用 mktime() 对年、月、日域进行规格化, 同时也转换成了 time t 值。可以用 mktime() 来计算两个日期的 time t 值, 然后用 difftime() 计算两个 time t 值的秒数差分。
但是, 这些方法只有日期在 time t 表达范围内才保证工作正常。对于保守的 time t, 通常范围是从 1970 年到大约 2037 年; 注意有些 time t 的表达不是按照 Unix 和 Posix 标准的。tm mday 域是个 int, 所以日偏移量超出 32,736 就会上溢。还要注意, 在夏令时转换的时候, 一天并不是 24 小时, 所以不要假设可以用86400 整除。
另一个解决的方法是用 “Julian 日期”, 这可以支持更宽的时间范围。
全部回答
ansi/iso 标准 c 函数 mktime() 和 difftime() 对这两个问题提供了一些有限的支持。 mktime() 接受没有规格化的日期, 所以可以用一个日期的 struct tm 结构, 直接在 tm_mday 域进行加或减, 然后调用 mktime() 对年、月、日域进行规格化, 同时也转换成了 time_t 值。可以用 mktime() 来计算两个日期的 time_t 值, 然后用 difftime() 计算两个 time_t 值的秒数差分。 但是, 这些方法只有日期在 time_t 表达范围内才保证工作正常。对于保守的 time_t, 通常范围是从 1970 年到大约 2037 年; 注意有些 time_t 的表达不是按照 unix 和 posix 标准的。tm_mday 域是个 int, 所以日偏移量超出 32,736 就会上溢。还要注意, 在夏令时转换的时候, 一天并不是 24 小时, 所以不要假设可以用 86400 整除。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么都说结婚好呢?
那样是爱情的故事?
“令侍中儒者皮弁缙绅,射牛行事。……天子皆
龙杰快餐店这个地址在什么地方,我要处理点事
什么57除以8的商是一个三位数,什5前面填什么
送男朋友什么生日礼物好?
无锡博世面试非常遗憾,但是很希望进入那样的
人到啦40岁应该怎样的合理的补钙 补过了对人
瓜子脸,中长发,该弄怎样的发型?
银行收银员(打一动物)
为什么我不能打2D桌球?
女生研究生学物理层信息安全这个专业好吗
舒畅的最新消息
二元一次方程组4x+3y=7kx+(k?1)y=3的解x,y
单选题On stepping into his
推荐资讯
我开了一家二十几个人的服装厂!哪里接外贸加
一带一路为什么没伊朗
金百和商务宾馆在哪里啊,我有事要去这个地方
QQ飞车怎么弄永久的S车啊
求VB高手帮做一个QQ空间破解软件
哪位高手帮一下忙,为什么造梦西游2打白骨精
谁能给点辩论会论据?越多越好,关于军校大学
为民药房恒生堂店这个地址在什么地方,我要处
哪里有意大利歌曲《那么多叹息》的音频或者视
怎么考上海滑稽剧团
沿江蓄电池销售部怎么去啊,有知道地址的么
我们的存在结局是什么,小说一女御皇结局是什
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?