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

如何在ASP.NET Web应用中计算两个时长的加减运算?

ASP.NET中实现小时:分钟格式时长的加减运算

核心思路

把时长字符串转换为总分钟数进行数值运算,再将运算结果转换回小时:分钟格式,直接规避时分进位/借位的复杂逻辑,简化计算流程。

实现代码

1. 辅助方法:时长与总分钟数互转

public static class DurationCalculator
{
    // 将"小时:分钟"格式字符串转为总分钟数
    public static int ParseDurationToMinutes(string duration)
    {
        var parts = duration.Split(':');
        if (parts.Length != 2 || !int.TryParse(parts[0], out int hours) || !int.TryParse(parts[1], out int minutes))
        {
            throw new ArgumentException("无效时长格式,请使用\"小时:分钟\"格式,例如100:45");
        }
        return hours * 60 + minutes;
    }

    // 将总分钟数转回"小时:分钟"格式(分钟补两位)
    public static string ConvertMinutesToDuration(int totalMinutes)
    {
        int absMinutes = Math.Abs(totalMinutes);
        int hours = absMinutes / 60;
        int minutes = absMinutes % 60;
        return $"{hours}:{minutes:D2}";
    }
}

2. 加减运算逻辑

// 示例输入
string durationA = "100:45";
string durationB = "395:50";

// 转换为总分钟数
int minsA = DurationCalculator.ParseDurationToMinutes(durationA);
int minsB = DurationCalculator.ParseDurationToMinutes(durationB);

// 加法运算
int addTotal = minsA + minsB;
string addResult = DurationCalculator.ConvertMinutesToDuration(addTotal);
// 结果:496:35

// 减法运算(按示例取差值绝对值)
int subtractTotal = minsA - minsB;
string subtractResult = DurationCalculator.ConvertMinutesToDuration(subtractTotal);
// 结果:295:05

代码说明

  • ParseDurationToMinutes:拆分时长字符串并验证格式,格式不符合要求时抛出异常,可根据业务场景调整异常处理逻辑。
  • ConvertMinutesToDuration:通过取整和取余计算小时与分钟,用D2保证分钟始终为两位数字,Math.Abs处理负数,匹配示例中减法结果为正数的需求。
  • 运算逻辑:加法直接求和,减法取差值绝对值,完全匹配你给出的示例结果。

内容的提问来源于stack exchange,提问作者RUB JAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:55:15