求助~~关于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;
}