这可能是个愚蠢的问题。但我在这里缺少逻辑。我必须将日期与日期时间与小时和分钟(而不是秒)进行比较。
如果第一个字段时间早于第二个字段执行条件
现在我正在做if (Convert.ToDateTime(newItem["Modified"]) < Convert.ToDateTime(properties.ListItem["Modified"]))
示例if("02/12/2015 11:58" < "02/12/2015 12:01")
然后执行条件。
答案 0 :(得分:2)
您可以使用大多数相同的值创建新的DateTime
对象,但将秒设置为0.示例:
DateTime date1WithoutSeconds = new DateTime(dt1.Year, dt1.Month, dt1.Day, dt1.Hour, dt1.Minute, 0);
DateTime date2WithoutSeconds = new DateTime(dt2.Year, dt2.Month, dt2.Day, dt2.Hour, dt2.Minute, 0);
bool b = date1WithoutSeconds < date2WithoutSeconds;
答案 1 :(得分:0)
您可以减去这两个日期,如果差异的TotalSeconds小于60并且最小值相同,那么它们是相等的:
var first = Convert.ToDateTime(newItem["Modified"]);
var second = Convert.ToDateTime(properties.ListItem["Modified"]);
if (first.Subtract(second).TotalSeconds < 60 && first.Minute == second.Minute)
{
Console.WriteLine("They are equal");
}
答案 2 :(得分:0)
另一种应该有效的方法。
DateTime date1 = Convert.ToDateTime(newItem["Modified"]);
DateTime date2 = Convert.ToDateTime(properties.ListItem["Modified"]));
if( date1.AddSeconds(-date1.Second) < date2.AddSeconds(-date2.Second) ) {
}
但是,我想知道......是否真的需要忽略秒和“下限”结果,以便12:59:00与12:59:59相同但不同于12:58: 59即使只有一秒钟的差异......或者你是否需要知道差异大于一分钟?如果您真的只想确保它相隔一分钟,请使用TimeSpan (date1 - date2).TotalSeconds > 60
我怀疑这是否可能,但如果你的DateTime是一个字符串WITH毫秒,那么执行:
if( date1.AddSeconds(-date1.Second).AddMilliseconds(-date1.Millisecond) <
date2.AddSeconds(-date2.Second).AddMilliseconds(-date2.Millisecond) )
{
}
答案 3 :(得分:0)
您应该使用DateTime.CompareTo方法。
抓取并将两个日期分配为DateTime对象:
DateTime date = Convert.ToDateTime(newItem["Modified"]);
DateTime compareDate = Convert.ToDateTime(properties.ListItem["Modified"]);
现在可以使用DateTime对象的CompareTo方法来查看实例是否早于,等于或晚于另一个,分别返回-1,0和1。
所以,按照你的例子:if(“02/12/2015 11:58”&lt;“02/12/2015 12:01”),第一个日期是date,第二个是compareDate,代码:
date.CompareTo(compareDate);
将返回-1,告诉您调用该方法的实例早于您要比较的对象。
这是the MSDN。
答案 4 :(得分:-1)
首先,您在问题中提到的示例数据不包括秒数,因此默认情况下Convert.ToDateTime
会将'00'指定为秒,因此将比较没有秒。
但是,假设您确实提供了实际数据中的秒数。您可以使用以下内容:
var date1 = Convert.ToDateTime(newItem["Modified"]);
var date2 = Convert.ToDateTime(properties.ListItem["Modified"]);
if (date1.AddSeconds(-date1.Second) < date2.AddSeconds(-date2.Second))