c#日期/时间格式

Dar*_*ter -3 .net c#

任何人都可以帮助我格式化以下内容吗?

if(system.datetime.now > 20:00:00 AND < 23:59:59)
    NewDateTime = (system.datetime.now + 1 day) + time as 00:01:00
Run Code Online (Sandbox Code Playgroud)

即如果sysdate符合条件,则使NewDateTime = Sysdate + 1天,时间为00:01:00

谢谢

Jon*_*eet 5

你不应该在这里处理格式化.我怀疑你想要的东西:

TimeSpan earliest = new TimeSpan(20, 0, 0);
TimeSpan latest = new TimeSpan(23, 59, 59);
DateTime now = DateTime.Now;
TimeSpan currentTime = now.TimeOfDay;

if (currentTime > earliest && currentTime < latest)
{
    DateTime newDateTime = now.Date.AddDays(1).AddHours(1);
}
Run Code Online (Sandbox Code Playgroud)

这里的一个重点是,我只服用DateTime.Now 一次,而不是每次我们对"当前时间"感兴趣.这导致更好的一致性.

我也会质疑你的"最新"部分 - 你真的希望这种行为在23:59:59.5有所不同吗?难道你不是说"晚上8点以后的任何时间"吗?也许这也应该是包容性的?这将导致:

// Probably make this a static readonly field
TimeSpan earliest = new TimeSpan(20, 0, 0); 

DateTime now = DateTime.Now;
TimeSpan currentTime = now.TimeOfDay;
if (currentTime >= earliest)
{
    DateTime newDateTime = now.Date.AddDays(1).AddHours(1);
}
Run Code Online (Sandbox Code Playgroud)