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)
您不必乱搞天花板和地板。该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
//完全误读。完全重写
我会做这样的事情
int minutesToNextHour = 60 - DateTime.Now.Minutes;
int secondsToNextHour = minutesToNextHour * 60;
Run Code Online (Sandbox Code Playgroud)
这似乎是最简单的:
3600 - DateTime.Now.TimeOfDay.TotalSeconds % 3600
Run Code Online (Sandbox Code Playgroud)
(如果你想要整数 - 整数 - 然后DateTime.Now...以(int).