还剩下几秒钟的时间?

时间:2011-09-01 16:55:48

标签: c# time timespan

我有以下代码:

var enteredDate = Convert.ToDateTime("17:45");
var todaysDateTime = DateTime.Now;
var span = enteredDate.Subtract(todaysDateTime);
double totalMins = Math.Ceiling(span.TotalMinutes);

string timeCond;
if (totalMins > 0)
{
   if (totalMins < 5)
   {
     timeCond = Math.Ceiling(span.TotalSeconds) + " seconds left.";
   }
   else
   {
     timeCond = totalMins + " minutes left.";
   }

}

鉴于现在的时间是17:50,返回的秒数将是负数,我希望能够返回与代码相关的秒或分钟,以便下次时间{ {1}},这可能吗?

2 个答案:

答案 0 :(得分:3)

您可以随时添加一天:

var span = enteredDate - todaysDateTime;
if (span < TimeSpan.Zero)
{
    span += TimeSpan.FromDays(1);
}

(请注意,这假设在今天的17:45和明天的17:45之间有24小时。在夏令时过渡期间并非如此;适应这种情况是可行的,但会使生活变得更复杂。)

答案 1 :(得分:0)

var span = Convert.ToDateTime("17:45") > DateTime.Now ? Convert.ToDateTime("17:45") - DateTime.Now : Convert.ToDateTime("17:45").AddDays(1) - DateTime.Now