日期:2014-05-17  浏览次数:20826 次

求助~~关于datetime中求相减的时间问题
string str1 = txtYear.Text + "-" +txtMonth .Text  + "-" +txtDay .Text  +" "+ txtHour.Text + ":" +    txtMinites.Text + ":"+Convert .ToString (DateTime .Now .Second);
            DateTime t1 = Convert.ToDateTime(str1 );
            DateTime t2 = Convert .ToDateTime( DateTime.Now);
 TimeSpan ts = (t1 - t2);
想求出两个时间间隔的秒数,但是每次秒都显示为59。能准确显示间隔的天数 和小时数。
上面方法能不能求出,如果不能还有其他办法??

------解决方案--------------------
自己再扩展到秒就行了
------解决方案--------------------
因为DateTime.Now包含毫秒数,所以相减取到秒去整肯定有误差。
------解决方案--------------------
1. DateTime.Now 本来就是DateTime类型,不需要再转换为DateTime类型
2. TimeSpan类型有TotalSeconds属性可以利用
------解决方案--------------------
refer:
static void Main(string[] args)
        {
            DateTime dt1 = DateTime.Now;
            DateTime dt2 = DateTime.Now.AddSeconds(58);

            Console.WriteLine(DateDiff(dt1, dt2));//0天1小时0分钟0秒
        }

        private static string DateDiff(DateTime DateTime1, DateTime DateTime2)
        {
            string dateDiff = null;
            TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
            TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
            TimeSpan ts = ts1.Subtract(ts2).Duration();
            dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
            return dateDiff;
        }