如果帐户在30天内到期,我正在努力解决问题.我正确使用DateTime比较吗?
if (DateTime.Compare(expiryDate, now) < 30) { matchFound = true; }
Konrad Rudol.. 209
我正确使用DateTime比较吗?
No. Compare
仅提供有关两个日期的相对位置的信息:更少,相等或更大.你想要的是这样的:
if ((expiryDate - DateTime.Now).TotalDays < 30) matchFound = true;
这减去了两个DateTime
.结果是TimeSpan
具有TotalDays
属性的对象.
另外,条件可以直接写为:
matchFound = (expiryDate - DateTime.Now).TotalDays < 30;
不需要if
.
我正确使用DateTime比较吗?
No. Compare
仅提供有关两个日期的相对位置的信息:更少,相等或更大.你想要的是这样的:
if ((expiryDate - DateTime.Now).TotalDays < 30) matchFound = true;
这减去了两个DateTime
.结果是TimeSpan
具有TotalDays
属性的对象.
另外,条件可以直接写为:
matchFound = (expiryDate - DateTime.Now).TotalDays < 30;
不需要if
.
应该
matchFound = (expiryDate - DateTime.Now).TotalDays < 30;
注意总天数,否则你会得到明智的行为
好吧,我会这样做:
TimeSpan diff = expiryDate - DateTime.Today; if (diff.Days > 30) matchFound = true;
比较只响应一个表示天气的整数,第一个是更早,相同或更晚......
试试这个
if ( (expiryDate - DateTime.Now ).TotalDays < 30 ) { matchFound = true; }