我如何形成这个DateTime逻辑来将当前时间增加45分钟?

本文关键字:时间 增加 45分钟 何形成 DateTime | 更新日期: 2023-09-27 18:07:24

我要在运行时填充一个ddl。

我实际需要做的是从系统中获取当前时间(24小时格式)。然后我需要把它四舍五入到15分钟,所以如果时间是13:23,它将变成13:30;如果它是13:12,那么它应该变成13:15

然后我想加45分钟,13:15变成14:00。

我正努力像这样实现它

DateTime d = DateTime.Now;
string hr = d.ToString("HH:mm");
string mi = d.ToString("mm");
谁能告诉我,要么我必须写所有的逻辑,要么DateTime可以提供一些功能要这样格式化吗?

我如何形成这个DateTime逻辑来将当前时间增加45分钟?

我想这应该对你有用:

var d = DateTime.Now;
d = d.AddSeconds(-d.Seconds).AddMilliseconds(-d.Milliseconds)
if (d.Minute < 15) { d.AddMinutes(15 - d.Minute); }
else if (d.Minute < 30) { d = d.AddMinutes(30 - d.Minute); }
else if (d.Minute < 45) { d = d.AddMinutes(45 - d.Minute); }
else if (d.Minute < 60) { d = d.AddMinutes(60 - d.Minute); }
d = d.AddMinutes(45);
        DateTime d = DateTime.Now;
        //Add your 45 minutes
        d = d.AddMinutes(45);
        //Add minutes to the next quarter of an hour 
        d = d.AddMinutes((15 - d.TimeOfDay.Minutes % 15) % 15);
        //Show your result
        string hr = d.ToString("HH:mm");
        string mi = d.ToString("mm");

DateTime在c#中有一个为当前DateTime对象添加任何增量的函数。这里是对分钟的特定函数的参考。

DateTime d = DateTime.Now;
DateTime rounded;
if(d.Minute % 15 ==0)rounded = d;
else DateTime rounded = d.AddMinutes(15 - d.Minute % 15);
Console.WriteLine("{0:HH:mm}",rounded);