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

自定义非24小时制天数的时长相加C#代码调试求助

问题排查与修正

核心问题分析

你的代码存在两个关键问题,导致无法正常运行或输出错误结果:

  1. 缺少类容器:C#是面向对象语言,所有方法必须定义在类或结构体内部。你直接编写static void Main(),编译器会报错,无法生成可执行程序,自然得不到正确结果。
  2. 八进制字面量的隐患:代码中07*60 +20里的07是八进制整数(C#中以0开头的整数默认解析为八进制),虽然此处07等价于十进制的7,计算结果暂时正确,但如果后续修改为08这类数值,会直接触发编译错误,建议直接使用十进制写法7。

修正后的代码

using System;

class CustomDurationCalculator
{
    static void Main()
    {
        // 输入第一个时长
        Console.WriteLine("Enter the first duration:");
        Console.Write("Days: ");
        int days1 = int.Parse(Console.ReadLine());

        Console.Write("Hours: ");
        int hours1 = int.Parse(Console.ReadLine());

        Console.Write("Minutes: ");
        int minutes1 = int.Parse(Console.ReadLine());

        // 输入第二个时长
        Console.WriteLine("\nEnter the second duration:");
        Console.Write("Days: ");
        int days2 = int.Parse(Console.ReadLine());

        Console.Write("Hours: ");
        int hours2 = int.Parse(Console.ReadLine());

        Console.Write("Minutes: ");
        int minutes2 = int.Parse(Console.ReadLine());

        // 定义自定义一天的分钟数(1天=7小时20分钟)
        int customMinutesPerDay = 7 * 60 + 20; // 用十进制7,避免八进制歧义

        // 转换为总分钟数
        int totalMinutes1 = (days1 * customMinutesPerDay) + (hours1 * 60) + minutes1;
        int totalMinutes2 = (days2 * customMinutesPerDay) + (hours2 * 60) + minutes2;

        // 计算总和
        int totalMinutesSum = totalMinutes1 + totalMinutes2;

        // 转换回自定义时长格式
        int newDays = totalMinutesSum / customMinutesPerDay;
        int remainingMinutes = totalMinutesSum % customMinutesPerDay;

        int newHours = remainingMinutes / 60;
        int newMinutes = remainingMinutes % 60;

        Console.WriteLine($"\nTotal Duration: {newDays} days, {newHours} hours, {newMinutes} minutes");
    }
}

示例验证

用你给出的测试输入:

  • 第一个时长:17天1小时40分钟
  • 第二个时长:2天3小时40分钟

手动计算过程:

  1. 自定义一天的分钟数:7*60+20=440分钟
  2. 第一个时长总分钟:17*440 + 60 +40=7580
  3. 第二个时长总分钟:2*440 + 180 +40=1100
  4. 总和:7580+1100=8680分钟
  5. 转换为自定义格式:8680/440=19天,剩余320分钟;320/60=5小时,剩余20分钟
  6. 最终结果:19天5小时20分钟,修正后的代码会输出该正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:45:36