C# 计算到早上8点有多少小时

C# 计算到早上8点有多少小时,c#,datetime,C#,Datetime,我知道如何计算两个日期之间的差异,但如何计算给定日期和下一个上午8点之间的时间?类似的事情怎么样 var now = DateTime.Now; double diffHours = 24 - (now - now.Date).TotalHours + 8; var now = DateTime.Now(); var target = DateTime.Today.AddDays(1).AddHours(8); var result = (target - now).Hour; 在同一天早上

我知道如何计算两个日期之间的差异,但如何计算给定日期和下一个上午8点之间的时间?

类似的事情怎么样

var now = DateTime.Now;
double diffHours = 24 - (now - now.Date).TotalHours + 8;
var now = DateTime.Now();
var target = DateTime.Today.AddDays(1).AddHours(8);
var result = (target - now).Hour;

在同一天早上8点之前工作正常

DateTime now = DateTime.Now;
DateTime next8am =now.Date.AddHours(8);
if(now.TimeOfDay>TimeSpan.FromHours(8))
    next8am.AddDays(1);
return next8am.Subtract(now).TotalHours

不要给DateTime打电话。现在两次,第一次打电话在午夜之前,第二次打电话在午夜之后,这样的风险很小。相反,将
DateTime.Now
保存在一个变量中,并在两个计算中使用它。您是否尝试过对两个DateTime进行减法并使用TimeSpan类?因此,如果“Now”是凌晨1点,是否希望
31
小时作为结果?也可以写入
24.0-DateTime.Now.TimeOfDay.TotalHours+8.0
32.0-DateTime.Now.TimeOfDay.TotalHours
DateTime now = DateTime.Now;
DateTime next8am =now.Date.AddHours(8);
if(now.TimeOfDay>TimeSpan.FromHours(8))
    next8am.AddDays(1);
return next8am.Subtract(now).TotalHours