You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现秒转天时分秒且小时不超24?程序计算异常求助

Fixing the Hour Calculation for Seconds-to-DHMS Conversion

嘿,问题出在你计算小时的那行代码上——你搞混了除法和取模的用法!

让我给你拆解一下核心问题:

  • 当你已经把天数对应的秒数从totalSeconds里扣除后,剩下的秒数要计算小时,应该用除法/)而不是取模(%)。因为totalSeconds / 3600会得到剩余秒数里包含的完整小时数(最多23,毕竟我们已经先剥离了整天的秒数)。
  • 取模%的作用是计算扣除小时后剩余的秒数,不过你后续的步骤已经在处理这个逻辑了。

修正后的完整代码

int totalSeconds = // 你的输入秒数值
int days = totalSeconds / 86400;
totalSeconds -= days * 86400;
int hours = totalSeconds / 3600; // 这里把%改成/即可
totalSeconds -= hours * 3600;
int minutes = totalSeconds / 60;
int seconds = totalSeconds % 60;

验证示例

比如输入90000秒(对应1天1小时):

  • 修正前:hours = 3600 % 3600 = 0(完全不符合预期)
  • 修正后:hours = 3600 / 3600 = 1(结果正确)

这样调整后,小时数就永远不会超过24了,因为我们已经提前把完整天数对应的秒数从总输入里剥离出去,剩余的秒数最多只有86399秒(23小时59分59秒)。

内容的提问来源于stack exchange,提问作者Faizan Ahmad

火山引擎 最新活动