当前位置:编程学习 > C#/ASP.NET >>

DateTime比较问题

今天我遇到一个DateTime的比较问题,2个DateTime变量比较,
从输出上字符来看是相等的(输出精确到秒),但比较却不相等,
有没有简单的办法去掉比秒小的时间部分,谢谢! --------------------编程问答-------------------- DateTime.ToString("yyyy-MM-dd hh:mm:ss") --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
DateTime.ToString("yyyy-MM-dd hh:mm:ss")

你这个没考虑到上午11点和下午11点的区别。
应改这样
if(dt1.ToString("yyyy-MM-dd HH:mm:ss")==dt2.ToString("yyyy-MM-dd HH:mm:ss"))
//相等
else
//不相等 --------------------编程问答-------------------- DateTime的一刻度是100ns,最精确的比较你可以比较刻度属性(Ticks). --------------------编程问答-------------------- DateTime.ToString("yyyy-MM-dd HH:mm:ss").ComparTo() --------------------编程问答-------------------- if ((time2 - time1).Seconds == 0)
{
//两个时间相差的秒数等于0
} --------------------编程问答-------------------- 顶
引用 5 楼 sofant 的回复:
if ((time2 - time1).Seconds == 0)
{
//两个时间相差的秒数等于0
}
--------------------编程问答--------------------
引用 5 楼 sofant 的回复:
if ((time2 - time1).Seconds == 0)
{
//两个时间相差的秒数等于0
}

這個比較好 --------------------编程问答--------------------
引用 5 楼 sofant 的回复:
if ((time2 - time1).Seconds == 0)
{
//两个时间相差的秒数等于0
}


这是可以的。

可以写将两个DateTime相减,然后取得到的TimeSpan的TotalMilliseconds判断其 <100。

使用<比较判断,尽量不要使用==。 --------------------编程问答-------------------- if ((int)(time2 - time1).TotalSeconds == 0)
{
  // 精确到秒
}

TotalSeconds返回的是一个double类型,把它转换为int以后可以忽略小数部分,这样当整数部分为0时,就可以达到你的目的了。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,