开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

123
返回列表 发新帖
楼主: 千狐
收起左侧

[已解决] 取时间间隔() 返回结果整数溢出为负数咋办?

 关闭 [复制链接]
结帖率:62% (8/13)
 楼主| 发表于 2025-8-12 16:00:13 | 显示全部楼层   福建省泉州市
阿杰大大 发表于 2025-8-12 00:01
因为你用别的也有时间范围问题.所以只能用时间戳来处理.这是最好的处理方式.他不管什么数据都有一个数据 ...

调试输出 (结果=取时间间隔S (到时间 (“2100年1月1日”), 到时间 (“2000年1月1日”), #秒))  ' 得到:-1139207296   

我有一个不成熟的想法:就是对结果的值加个判断是否溢出但我不知道最大整数型溢出后的界限值是多少?
比如:  

如果真(结果< -最大整数)
调试输出(传入的参数 时间1或时间2 不正确,取时间间隔溢出了)

一开始我的想法是:
如果真(结果< 0)就判定溢出了,但后来想想不对,因为有些场景是需要负数的 比如软件授权已过期 -100秒 这个场景负数就代表软件授权过期 正数就是授权还在   取时间间隔()结果是因为整数型溢出那就需要判断负数结果是正确的整数型内还是超出了整数型的溢出错误 我寻思着 时间1 减去 时间2 最后的结果正数超过9位数会溢出变成负数 那负数超过9位还会不会溢出变成正数?


点评

会.溢出之后你可以理解成又从最小值开始往最大值加,也就是这样会是循环,所以如果是到期时间的判定,那么就怼最小时间和最大时间加上限制,比如100年就判断为永久,就给他设置成一个固定的时间戳,这样的判定方式.取时间   河北省唐山市   详情 回复 发表于 2025-8-12 16:21
回复

使用道具 举报

结帖率:93% (26/28)

签到天数: 7 天

发表于 2025-8-12 16:21:11 | 显示全部楼层   河北省唐山市
千狐 发表于 2025-8-12 16:00
调试输出 (结果=取时间间隔S (到时间 (“2100年1月1日”), 到时间 (“2000年1月1日”), #秒))  ' 得到:- ...

会.溢出之后你可以理解成又从最小值开始往最大值加,也就是这样会是循环,所以如果是到期时间的判定,那么就怼最小时间和最大时间加上限制,比如100年就判断为永久,就给他设置成一个固定的时间戳,这样的判定方式.取时间间隔目前满足不了,只能用其他的.
回复

使用道具 举报

结帖率:62% (8/13)

签到天数: 2 天

 楼主| 发表于 2025-9-10 15:17:26 | 显示全部楼层   福建省泉州市
阿杰大大 发表于 2025-8-12 16:21
会.溢出之后你可以理解成又从最小值开始往最大值加,也就是这样会是循环,所以如果是到期时间的判定,那么就 ...

最近刷抖音看到有主播说:千年虫时间戳BUG 就是秒数超过68年也就是32位的手机设置时间超过2038年就会秒整数型溢出报错,设备需要改成64位才能解决 ,所以我这边 取超过68年时间间隔(#秒) 才会出现溢出  


参考资料:2038年问题指采用32位POSIX时间标准的计算机系统在2038年1月19日格林尼治时间03:14:07后因时间溢出引发的程序错误。其根源是32位系统用有符号整数存储自1970年1月1日起经过的秒数,数值上限为2147483647秒,超出后时间值将溢出为负数,系统可能误判为1901年12月13日 [1]。
该问题由C语言标准时间库对time_t数据类型的32位定义引起。当时间累积至2038年1月19日03:14:07时,数值将循环至-2147483648秒,导致时间计算异常。此类问题主要影响依赖32位整型存储时间的软件及嵌入式系统 [1]。
目前主流解决方案是将time_t升级为64位整型,理论上可支持至约2900亿年后。多数64位操作系统已完成升级,但全球仍有大量32位嵌入式设备因固件更新困难存在风险。部分文件格式(如ZIP)仍沿用32位时间戳,导致兼容性问题长期存在。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表