我在c#中将用户给定日期与system.datetime进行比较 如果日期已过,或者日期与system.date时间相符,则视为
if ((Convert.ToDateTime(firstTimeOFArray).ToString(@"MM\/dd\/yyyy HH:mm").CompareTo(System.DateTime.Now.ToString(@"MM\/dd\/yyyy HH:mm")) == 0 ||
Convert.ToDateTime(firstTimeOFArray).ToString(@"MM\/dd\/yyyy HH:mm").CompareTo(System.DateTime.Now.ToString(@"MM\/dd\/yyyy HH:mm")) == -1))
{
filenamedate = DR_FILENAME;
fileFound = true;
}
我的问题是,如果我在2016/12/22下午3:00给出一个日期,它将在系统时间的2016/12/22 3:00 pm接受它。
如果时间已经过去,例如:系统时间是2016/12/22 3:00 pm,用户时间是2016/12/21 3:00 pm。逻辑是接受的。
但如果我给系统时间2016/12/21下午3:00和用户时间2017/12/21下午3:00 ..它再次接受。理想情况下,它应该直到系统在2017年的确切日期。 我哪里错了。
答案 0 :(得分:2)
替换它:
if ((Convert.ToDateTime(firstTimeOFArray).ToString(@"MM\/dd\/yyyy HH:mm").CompareTo(System.DateTime.Now.ToString(@"MM\/dd\/yyyy HH:mm")) == 0 ||
Convert.ToDateTime(firstTimeOFArray).ToString(@"MM\/dd\/yyyy HH:mm").CompareTo(System.DateTime.Now.ToString(@"MM\/dd\/yyyy HH:mm")) == -1))
用这个:
if (Convert.ToDateTime(firstTimeOFArray) <= DateTime.Now)
这可能是你的意思。从那时起,您将更容易理解自己代码的语义并实现您想要的目标。
请注意,对于两个DateTime
的字符串表示的字典比较,需要yyyy MM dd HH mm
个组件序列才能工作。