TimeSpan结构:表示一个时间间隔。
它含有以下四个构造函数:
TimeSpan(Int64) 将 TimeSpan 结构的新实例初始化为指定的刻度数。
(DateTime.Tick: 是计算机的一个计时周期,单位是一百纳秒,即一千万分之一秒)
TimeSpan(Int32, Int32, Int32) 将 TimeSpan 结构的新实例初始化为指定的小时数、分钟数和秒数。
TimeSpan(Int32, Int32, Int32, Int32) 将 TimeSpan 结构的新实例初始化为指定的天数、小时数、分钟数和秒数。
TimeSpan (Int32,Int3 效果为:2, Int32, Int32, Int32) 将新的 TimeSpan 结构初始化为指定的天数、小时数、分钟数、秒数和毫秒数。
Demo:
TimeSpan ts0 = new TimeSpan(36); // 将时间间隔 ts0 初始化为 36 刻度数 | |
TimeSpan ts1 = new TimeSpan(4, 20, 33); // 将时间间隔 ts1 初始化为 4 小时 20 分 33 秒 | |
TimeSpan ts2 = new TimeSpan(2,10,36,45); // 将时间间隔 ts2 初始化为 2 天 10 小时 36 分 45 秒 | |
TimeSpan ts3 = new TimeSpan(6, 12, 56, 45,23); // 将时间间隔 ts3 初始化为 6 天 12 小时 56 分 45 秒 23 毫秒 | |
Console.WriteLine(ts0); | |
Console.WriteLine(ts1); | |
Console.WriteLine(ts2); | |
Console.WriteLine(ts3); |
输出效果为:
// 00:00:00:00.0000036 | |
// 04:20:33 | |
// 2.10:36:45 | |
// 6.12:56:45.0230000 |
并有以下属性:
Days // 直接取出 TimeSpan 结构所表示的时间间隔的天数部分。
Hours // 直接取出 TimeSpan 结构所表示的时间间隔的小时部分。
Minutes // 直接取出 TimeSpan 结构所表示的时间间隔的分钟部分。
Seconds // 直接取出 TimeSpan 结构所表示的时间间隔的秒数部分。
Milliseconds // 直接取出 TimeSpan 结构所表示的时间间隔的毫秒部分。
Ticks // 表示多少个一百纳秒(计算机的一个计时单位)。
TotalDays // 将 TimeSpan 结构所表示的时间间隔换算成等效天数。
TotalHours // 将 TimeSpan 结构所表示的时间间隔换算成等效小时数。
TotalMinutes // 将 TimeSpan 结构所表示的时间间隔换算成等效分钟数。
TotalSeconds // 将 TimeSpan 结构所表示的时间间隔换算成等效秒数数。
TotalMilliseconds // 将 TimeSpan 结构所表示的时间间隔换算成等效毫秒数。
Demo:
TimeSpan ts4 = new TimeSpan(7, 18, 23, 41, 576);// 将时间间隔 ts4 初始化为 7 天 18 小时 23 分 41 秒 576 毫秒(毫秒以千进制) | |
DateTime dt1 = new DateTime(2014,9,22,7,16,39); | |
DateTime dt2 = DateTime.Now; | |
ts4 = dt2 - dt1; // 重新给 ts4 赋值 | |
Console.WriteLine("时间间隔为:{0}",ts4); | |
Console.WriteLine("时间间隔的天数部分:{0}", ts4.Days); | |
Console.WriteLine("时间间隔的小时部分:{0}", ts4.Hours); | |
Console.WriteLine("时间间隔的分钟部分:{0}", ts4.Minutes); | |
Console.WriteLine("时间间隔的秒部分:{0}", ts4.Seconds); | |
Console.WriteLine("时间间隔的毫秒部分:{0}", ts4.Milliseconds); | |
Console.WriteLine("时间间隔的等效刻度数(计时单位:一百纳秒):{0}", ts4.Ticks); // 输出多少个一百纳秒:30 天 * 24 小时 * 60 分 * 60 秒 * 1000 毫秒 + 03 小时 * 60 分 * 60 秒 * 1000 毫秒 + 09 分 * 60 秒 * 1000 毫秒 + 48 秒 * 1000 毫秒 + 599 毫秒 = 2603388599 毫秒,因为刻度是一百纳秒(一千万分之一秒),毫秒为一千分之一秒,所以一毫秒等于 1 万乘以一百纳秒,所以最后等于 2603388599 毫秒 * 10000+5781(个一百纳秒)=26033885995781。 | |
Console.WriteLine("时间间隔的等效天数:{0}", ts4.TotalDays); | |
Console.WriteLine("时间间隔的等效小时数:{0}", ts4.TotalHours); | |
Console.WriteLine("时间间隔的等效分钟数:{0}", ts4.TotalMinutes); | |
Console.WriteLine("时间间隔的等效秒数:{0}", ts4.TotalSeconds); | |
Console.WriteLine("时间间隔的等效毫秒数:{0}", ts4.TotalMilliseconds); |
输出效果为:
时间间隔为30.03:09:48.5995781 | |
时间间隔的天数部分:30 | |
时间间隔的小时部分:3 | |
时间间隔的分钟部分:9 | |
时间间隔的秒部分:48 | |
时间间隔的毫秒部分:599 | |
时间间隔的等效刻度数(计时单位,一百纳秒):26033885995781 | |
时间间隔的等效大数:30.1318124951169 | |
时间间隔的等效小时数:723.163499882806 | |
时间间隔的等效分钟数:43389.8099929683 | |
时间间隔的等效秒数:2603388.5995781 | |
时间间隔的等效毫秒数:2603388599.5781 |