C#: 计算 两个日期之间的 时间差

前言:

想知道过去的某个时间到现在过了多久,经历多少天,甚至精确到分。查阅了一下资料后,自己写了一个方法实现,基本达到要求,效果杠杠哒。ヾ(๑╹◡╹)ノ"

时间的输入格式:日期(年月日)必须以逗号(,)、空格( )、 破折号(-)分隔开,时间(时分秒)以冒号分隔;
如:string ss = "2017,7,15,20:16:35";  // "2017,7,15 20:16:35" 、"2017,7,15-20:16:35" 这几种形式都可以。

1.如果是计算某个时间点到现在的时间差,则输入一个日期时间,用当前时间减去这个时间,得出的结果就是时间差。

2.如果是计算某个时间点到某个时间点的时间差,则输入两个时间,有较后的时间减去前一个时间,得出的记过就是这两个日期的时间差了。


代码案例(C#):


        // 计算 两个日期之间的 时间差
        private void GetDaysDiffer(string ss)
        {
            //string ss = "2017,7,15,20:16:35";      // 参数格式 --- 第一个日期时间
            DateTime dt;
            // 1. 字符串转换 输出时间格式
            DateTime.TryParse(ss, out dt);         
            Debug.Log(string.Format("\n输入日期:{0:u}", dt));

            // 2. 字符串 转换时间格式 另一种写法
            //dt = Convert.ToDateTime("2017-7-15 20:36:12");  
            //Debug.Log("\n 输入日期111 : " + dt.ToString());

            // 第二个日期时间
            DateTime dtt = DateTime.Parse("2017-7-20 20:36:12");
            Debug.Log("\n 输入 dtt 日期为:" + dtt.ToString());


            DateTime currtlyTime = DateTime.Now;      // 获取当前时间

            // TimeSpan ts = dtt.Subtract(dt);        // 与第二次输入的时间之差
            TimeSpan ts = currtlyTime.Subtract(dt);   // 与当前日期的时间之差
            Debug.Log("\n 输入日期 的星期为星期 " + dt.DayOfWeek);
            Debug.LogFormat("\n 相差 时间 {0} 天", ts.Days);

            Debug.Log("\n 相差 " + ts.Days + "天," + ts.Hours + " 小时," + ts.Minutes + "分钟," + ts.Seconds + "秒,");
            Debug.LogFormat("\n 相差{0}个星期", (ts.Days / 7));
            //Debug.Log("\n ts Milliseconds: " + ts.Milliseconds);
        }



感兴趣的可以试一下,可以试试输入不同时间和现在的时间差,如:毕业到现在过去多久,过了几年几天;或者两个人相识多久了,一起度过了多少时光,多少分多少秒,给TA 一个惊喜 (*/ω\*)

你可能感兴趣的:(C#)