首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

~关于datetime中求相减的时间有关问题

2013-09-28 
求助~~关于datetime中求相减的时间问题string str1 txtYear.Text + - +txtMonth .Text+ - +txtDay .

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

热点排行