当前位置:  开发笔记 > 编程语言 > 正文

DateTime.Compare如何检查日期是否少于30天?

如何解决《DateTime.Compare如何检查日期是否少于30天?》经验,为你挑选了4个好方法。

如果帐户在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.



1> Konrad Rudol..:

我正确使用DateTime比较吗?

No. Compare仅提供有关两个日期的相对位置的信息:更少,相等或更大.你想要的是这样的:

if ((expiryDate - DateTime.Now).TotalDays < 30)
    matchFound = true;

这减去了两个DateTime.结果是TimeSpan具有TotalDays属性的对象.

另外,条件可以直接写为:

matchFound = (expiryDate - DateTime.Now).TotalDays < 30;

不需要if.


呃......我只是让我的答案更长,所以可以随意减去一个想象中的投票.;-)
应该允许给你2+;)一个用于答案,一个用于表达它的简短方式
它在概念上更准确.它没有任何区别,因为`Days`是'TimeSpan`的最大组成部分.阅读本文的人可以推断,认为"Seconds"属性的工作方式相同.

2> Luke..:

应该

matchFound = (expiryDate - DateTime.Now).TotalDays < 30;

注意总天数,否则你会得到明智的行为



3> haqwin..:

好吧,我会这样做:

TimeSpan diff = expiryDate - DateTime.Today;
if (diff.Days > 30) 
   matchFound = true;

比较只响应一个表示天气的整数,第一个是更早,相同或更晚......



4> JaredPar..:

试试这个

if ( (expiryDate - DateTime.Now ).TotalDays < 30 ) { 
  matchFound = true;
}

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有