我试图比较两个DateTime对象忽略秒与下面的函数,但它给出了错误的结果,即使两个DateTime对象具有相同的值.无法弄清楚如何使其正常工作,任何帮助将受到高度赞赏.
public static int CompareDateTime(DateTime d1, DateTime d2)
{
d1 = d1.AddSeconds(-1 * d1.Second);
d2 = d2.AddSeconds(-1 * d2.Second);
int result = DateTime.Compare(d1, d2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
Console.WriteLine("{0} {1} {2}", d1, relationship, d2);
return result;
}
Run Code Online (Sandbox Code Playgroud)
结果:
3/7/2017 2:54:00 PM is later than 3/7/2017 2:54:00 PM
Run Code Online (Sandbox Code Playgroud)
这里的问题是你没有像你期望的那样截断.截断的最佳方法是通过执行以下操作从构造函数创建一个全新的DateTime对象:
d1 = new DateTime(d1.Year, d1.Month, d1.Day, d1.Hour, d1.Minute, 0);
d2 = new DateTime(d2.Year, d2.Month, d2.Day, d2.Hour, d2.Minute, 0);
Run Code Online (Sandbox Code Playgroud)
这将确保您只比较所需的数据.
在这种特定情况下,它可能是您尝试截断所留下的日期时间的一部分.
归档时间: |
|
查看次数: |
1329 次 |
最近记录: |