详解C# TimeSpan 计算时间差(时间间隔)

2019-12-30 15:36:27王振洲

TimeSpan 结构  表示一个时间间隔。

命名空间:System 程序集:mscorlib(在 mscorlib.dll 中)

说明: 1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值,

其中的五个重载方法之一的结构 TimeSpan( int days, int hours, int minutes, int seconds )

下面的列表涵盖了其中的一部分方法及属性解释

Add:与另一个TimeSpan值相加。 Days:返回用天数计算的TimeSpan值。 Duration:获取TimeSpan的绝对值。 Hours:返回用小时计算的TimeSpan值 Milliseconds:返回用毫秒计算的TimeSpan值。 Minutes:返回用分钟计算的TimeSpan值。 Negate:返回当前实例的相反数。 Seconds:返回用秒计算的TimeSpan值。 Subtract:从中减去另一个TimeSpan值。 Ticks:返回TimeSpan值的tick数。 TotalDays:返回TimeSpan值表示的天数。 TotalHours:返回TimeSpan值表示的小时数。 TotalMilliseconds:返回TimeSpan值表示的毫秒数。 TotalMinutes:返回TimeSpan值表示的分钟数。 TotalSeconds:返回TimeSpan值表示的秒数。

代码实例


TimeSpan ts = new TimeSpan(12, 12, 11, 12, 21);
      int days = new TimeSpan(12, 12, 11, 12, 21).Days;
      TimeSpan duration = new TimeSpan(-12, 12, 11, 12, 21).Duration();//24小时的反值
      double totalDays = new TimeSpan(12, 12, 11, 12, 21).TotalDays;
      double totalHours = new TimeSpan(2, 12, 11, 12, 21).TotalHours;
      int hours = new TimeSpan(12, 12, 11, 12, 21).Hours;
      int minutes = new TimeSpan(12, 12, 11, 12, 21).Minutes;
      TimeSpan ts2 = new TimeSpan(1, 3, 01, 12, 21);
      // TimeSpan ts2 = new TimeSpan(5, 3, 1, 12, 21);//this is also right
      TimeSpan ts3 = new TimeSpan(5, 3, 01, 12, 21).Add(ts);
      TimeSpan ts4 = new TimeSpan(4, 3, 01, 12, 21).Subtract(ts);
      TimeSpan ts5 = new TimeSpan(4, 3, 01, 12, 21).Subtract(ts).Duration();
      TimeSpan Negate = new TimeSpan(5, 3, 01, 12, 21).Negate();
      DateTime dtnow = DateTime.Now;
      Console.WriteLine(ts);
      Console.WriteLine(days);
      Console.WriteLine(duration);
      Console.WriteLine(totalDays);
      Console.WriteLine(totalHours);
      Console.WriteLine(hours);
      Console.WriteLine(minutes);
      Console.WriteLine(ts2);
      Console.WriteLine(ts+ts2);
      Console.WriteLine(ts3);
      Console.WriteLine("Subtract:"+ts4);
      Console.WriteLine("Duration:" + ts5);
      Console.WriteLine(ts - ts2);
      Console.WriteLine(Negate);
      DateTime span = DateTime.Now.Add(ts2);
      TimeSpan spdate = span - DateTime.Now;
      long dateTicks = DateTime.Now.Add(ts2).Ticks;
      Console.WriteLine(span);
      Console.WriteLine(spdate);
      Console.WriteLine(dateTicks);