You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何将分钟转换为总小时数?TimeSpan显示异常问题

解决C#中分钟转总小时数(含剩余分钟)的问题

嘿,这个问题我之前踩过坑!你遇到的核心问题是TimeSpan的格式字符串hh(或HH)只显示单日范围内的小时数,超过24小时的部分会被自动拆分为天数,所以2000分钟(33小时20分)会被拆成1天+9小时,最终hh\:mm输出09:20。

要实现显示总小时数的需求,有两种简单的方案:

方案一:手动计算总小时和剩余分钟

直接通过数学运算得到总小时数和剩余分钟,完全避开TimeSpan的天数拆分限制:

double minutes = 2000;
int totalHours = (int)(minutes / 60);
int remainingMinutes = (int)(minutes % 60);
// 用D2确保分钟数始终是两位(比如5分钟显示为05)
label1.Text = $"{totalHours}:{remainingMinutes:D2}";

这个方法逻辑直白,输出就是你想要的33:20。

方案二:基于TimeSpan转换总小时数

如果你还是想保留TimeSpan的使用,可以把TimeSpan中的天数转换为小时数,再加上当前的小时数:

double minutes = 2000;
TimeSpan timeSpan = TimeSpan.FromMinutes(minutes);
int totalHours = timeSpan.Days * 24 + timeSpan.Hours;
label1.Text = $"{totalHours}:{timeSpan.Minutes:D2}";

这里timeSpan.Days是完整的天数(2000分钟对应1天),乘以24后加上剩余的9小时,就能得到总33小时,再拼接分钟数即可。

补充说明

TimeSpan的格式符里:

  • hh:12小时制的单日小时(范围00-11)
  • HH:24小时制的单日小时(范围00-23)
    这两个都不会显示超过24的总小时数,所以必须手动计算总小时才能得到你要的结果。

内容的提问来源于stack exchange,提问作者D.Iple

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:15:29