我尝试进行2天归约,以找出分钟内的差异。
这是我的代码
DateTime expDate = DateTime.ParseExact(stringExpDate, "yyyy-MM-dd",
System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine("date now:" + DateTime.Now);
Console.WriteLine("date exp:" + expDate);
TimeSpan expCount = expDate - DateTime.Now;
var expMinute = (int)expCount.TotalMinutes;
// var expMinute = expDate.Subtract(DateTime.Now).TotalMinutes;//got the same results as above
Console.WriteLine("exp count:" + expCount);
Console.WriteLine("exp min:" + expMinute);
我得到的结果
现在日期:2019/1/7 6:31:32
日期exp:1/7/2019 12:00:00 AM
exp计数:-06:31:32.5165326
exp分钟:-391
为什么产生负值? 不应该是积极的吗?
答案 0 :(得分:0)
您的实验日期小于(早于)现在,因此将产生负面结果。改为使用await
日期就像数字,如果今天是6,昨天将是5,明天将是7。将它们相减遵循相似的数学规则。昨天减去今天是负数。今天减去昨天是积极的。
一个简单的日期系统是unix。自1970年1月1日以来经过的秒数。在这里您可以看到它们一直在计数,明天的时间将大于今天的时间,等等。这种数字内部表示的概念,尤其是日期时间表示为“自某个时间点以来的间隔数”经常在各种软件中使用;要记住和利用的东西之一。
答案 1 :(得分:0)
答案 2 :(得分:0)
TimeSpan expCount = expDate - DateTime.Now;
expDate
是午夜。 Now
是同一天的6小时。因此,从较小的值减去较大的值时的差值为负。
您可以这样获得预期的结果:
TimeSpan expCount = DateTime.Now - expDate;
或类似这样:
TimeSpan expCount = (expDate - DateTime.Now).Duration;