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

如何在DateTime中实现每24小时自动加一天?含手动推进场景

嘿,看起来你已经把「按Enter键推进时间」的基础功能搭起来了,就差解决「累计推进24小时同步更新日期」的问题对吧?其实不用手动去算累计时长,C#的DateTime类型本身就自带日期进位的功能,咱们来调整一下你的代码:

首先先把你当前的代码(补全未写完的部分)贴出来,方便对比:

var time = new DateTime(2025, 4, 15, 12, 00, 0);
string currentDate = time.ToString("dd/MM/yyyy");
string currentTime = time.ToString("HH:mm");
int timeAdd = 4;

Console.WriteLine("Press 'Enter' to advance...");
ConsoleKeyInfo userInput = Console.ReadKey();

if (userInput.Key == ConsoleKey.Enter) {
    currentTime = time.AddHours(timeAdd).ToString("HH:mm");
    // 这里你可能没处理日期更新,而且只执行一次
}

核心问题&解决方案

你的代码里有几个小问题需要调整:

  • currentDate和currentTime是初始时间的字符串快照,更新time对象后不会自动同步
  • 只处理了一次Enter按键,没法多次推进时间
  • 其实不用手动判断是否累计24小时——DateTime.AddHours()方法会自动帮你处理日期进位!比如从4月15日22点加4小时,会直接变成4月16日2点。

修改后的完整代码

// 初始化初始时间
var time = new DateTime(2025, 4, 15, 12, 00, 0);
int timeAdd = 4; // 每次推进4小时

Console.WriteLine("Press 'Enter' to advance time (press any other key to exit)...");

// 用循环支持多次按Enter推进
while (true)
{
    ConsoleKeyInfo userInput = Console.ReadKey();
    
    if (userInput.Key == ConsoleKey.Enter)
    {
        // 直接更新time对象,DateTime自动处理日期变化
        time = time.AddHours(timeAdd);
        
        // 从更新后的time对象获取最新的日期和时间字符串
        string currentDate = time.ToString("dd/MM/yyyy");
        string currentTime = time.ToString("HH:mm");
        
        // 输出更新后的结果
        Console.WriteLine($"\n✅ Updated: {currentDate} {currentTime}");
        Console.WriteLine("Press 'Enter' to advance again...");
    }
    else
    {
        Console.WriteLine("\n👋 Exiting program...");
        break;
    }
}

关键改动说明

  • 用循环实现多次推进:while(true)让程序可以持续响应Enter按键,直到按其他键退出
  • 依赖DateTime的自动进位:time.AddHours(timeAdd)会直接修改time对象的日期和时间,完全不用你手动计算是否跨天
  • 每次更新后重新生成日期时间字符串:避免用初始的快照字符串,确保显示的是最新的时间状态

这样你每次按Enter,时间会推进4小时,一旦累计满24小时(比如按6次Enter),日期就会自动跳转到下一天,完美解决你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:45:49