现在和下一个小时之间的时间跨度?

Sno*_*owy 9 c# datetime timespan

现在是8:30,我试图找出从现在到下一个整个小时(9:00)之间的秒数.我想我只是想DateTime.Now.AddHours(1)但在我这样做后,我认为我需要"地板".如何获得这个价值?

谢谢.

dtb*_*dtb 19

只需几小时的时间,直到下一个积分值:

var timeOfDay = DateTime.Now.TimeOfDay;
var nextFullHour = TimeSpan.FromHours(Math.Ceiling(timeOfDay.TotalHours));
var delta = (nextFullHour - timeOfDay).TotalSeconds;
Run Code Online (Sandbox Code Playgroud)


Ani*_*Ani 6

您不必乱搞天花板和地板。该DateTime.Hour属性表示DateTime 所表示的一天中的时间的整个小时(它是 0 到 23 之间的整数)。您可以使用此属性和该DateTime.Date属性来去除您不需要的 DateTime 的组成部分(不到一小时的数据),然后根据需要进行减去以生成TimeSpan.

var now = DateTime.Now;
var timeToNextHour = now.Date.AddHours(now.Hour + 1) - now;
Run Code Online (Sandbox Code Playgroud)

如果您想在几秒钟内得到结果,您当然可以提取TotalSeconds结果的组成部分。TimeSpan


All*_*enG 5

//完全误读。完全重写

我会做这样的事情

int minutesToNextHour = 60 - DateTime.Now.Minutes;
int secondsToNextHour = minutesToNextHour * 60;
Run Code Online (Sandbox Code Playgroud)


Las*_*olt 5

这似乎是最简单的:

3600 - DateTime.Now.TimeOfDay.TotalSeconds % 3600
Run Code Online (Sandbox Code Playgroud)

(如果你想要整数 - 整数 - 然后DateTime.Now...(int).

  • :) 这么多不同的解决方案如此之快 - 你一定会错过一些东西。这可能不是一场比赛(它是) - 但我认为你应该赢:) (2认同)