C# TimeSpan的用法(附带实例)
TimeSpan 属于 System 类,主要用于处理时间的间隔。
DateTime 类的使用非常有弹性,可以使用下列构建方法创建时间对象:
【实例 1】创建 TimeSpan 对象同时输出 TotalDays 和相关属性。
【实例 2】创建 TimeSpan 对象同时输出 TotalHours 和相关属性。
【实例 3】创建 TimeSpan 对象同时输出 TotalMinutes 和相关属性。
【实例 4】创建 TimeSpan 对象同时输出 TotalSeconds 和相关属性。
【实例 5】时间间隔加法的应用。
【实例 6】时间间隔减法的应用。
DateTime 类的使用非常有弹性,可以使用下列构建方法创建时间对象:
public TimeSpan(long ticks); public TimeSpan(int hours, int minutes, int seconds); public TimeSpan(int days, int hours, int minutes, int seconds); public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds);
C# TimeSpan的属性
TimeSpan 的属性如下:- Days:天数;
- Hours:小时数;
- Minutes:分钟数;
- Seconds:秒数;
- MilliMinutes:毫秒数;
- Ticks:1000000 Tick 等于 1 秒,刻度(Tick)数目;
- TotalDays:显示完整的天数,也会显示小时、分钟、秒、毫秒;
- TotalHours:显示完整小时数,也会显示分钟、秒、毫秒;
- TotalMinutes:显示完整分钟数,也会显示秒、毫秒;
- TotalSeconds:显示完整秒数,也会显示毫秒;
- TotalMilliseconds:显示完整毫秒数。
【实例 1】创建 TimeSpan 对象同时输出 TotalDays 和相关属性。
TimeSpan interval = new TimeSpan(5, 10, 40, 35, 350); Console.WriteLine($"TimeSpan interval : {interval}"); Console.WriteLine($"TotalDays : {interval.TotalDays}"); Console.WriteLine($"Days : {interval.Days,-3}"); Console.WriteLine($"Hours : {interval.Hours,-3}"); Console.WriteLine($"Minutes : {interval.Minutes,-3}"); Console.WriteLine($"Seconds : {interval.Seconds,-3}"); Console.WriteLine($"Milliseconds : {interval.Milliseconds,-3}");执行结果为:
TimeSpan interval : 5.10:40:35.3500000
TotalDays : 5.44485358796296
Days : 5
Hours : 10
Minutes : 40
Seconds : 35
Milliseconds : 350
【实例 2】创建 TimeSpan 对象同时输出 TotalHours 和相关属性。
TimeSpan interval = new TimeSpan(1, 10, 40, 35, 350); Console.WriteLine($"TimeSpan interval : {interval}"); Console.WriteLine($"TotalHours : {interval.TotalHours}"); Console.WriteLine($"Hours : {interval.Hours,-3}"); Console.WriteLine($"Minutes : {interval.Minutes,-3}"); Console.WriteLine($"Seconds : {interval.Seconds,-3}"); Console.WriteLine($"Milliseconds : {interval.Milliseconds,-3}");执行结果为:
TimeSpan interval : 1.10:40:35.3500000
TotalHours : 34.6764861111111
Hours : 10
Minutes : 40
Seconds : 35
Milliseconds : 350
【实例 3】创建 TimeSpan 对象同时输出 TotalMinutes 和相关属性。
TimeSpan interval = new TimeSpan(1, 10, 40, 35, 350); Console.WriteLine($"TimeSpan interval : {interval}"); Console.WriteLine($"TotalMinutes : {interval.TotalMinutes}"); Console.WriteLine($"Minutes : {interval.Minutes,-3}"); Console.WriteLine($"Seconds : {interval.Seconds,-3}"); Console.WriteLine($"Milliseconds : {interval.Milliseconds,-3}");执行结果为:
TimeSpan interval : 1.10:40:35.3500000
TotalMinutes : 2080.58916666667
Minutes : 40
Seconds : 35
Milliseconds : 350
【实例 4】创建 TimeSpan 对象同时输出 TotalSeconds 和相关属性。
TimeSpan interval = new TimeSpan(1, 10, 40, 35, 350); Console.WriteLine($"TimeSpan interval : {interval}"); Console.WriteLine($"TotalSeconds : {interval.TotalSeconds}"); Console.WriteLine($"Seconds : {interval.Seconds,-3}"); Console.WriteLine($"Milliseconds : {interval.Milliseconds,-3}");执行结果为:
TimeSpan interval : 1.10:40:35.3500000
TotalSeconds : 124835.35
Seconds : 35
Milliseconds : 350
C# TimeSpan类常用方法
TimeSpan 类常用的方法如下:- Add(): 加法,回传新的 TimeSpan。
- Subtract(): 减法,回传新的 TimeSpan。
- Parse() 和 TryParse(): 解析时间间隔字符串,将其转为相等的 TimeSpan 字符串。TryParse() 也解析日期与时间字符串,将其转为 TimeSpan 格式,但是还会回传布尔值 bool,如果成功转换则回传 true,如果失败则回传 false。
1) 时间间隔加法Add()
时间间隔加法 Add() 的语法如下:public TimeSpan Add(TimeSpan ts);
【实例 5】时间间隔加法的应用。
TimeSpan ts1 = new TimeSpan(10, 20, 30); var ts2 = new TimeSpan(2, 5, 40); Console.WriteLine($"{ts1.Add(ts2)}");执行结果为:
12:26:10
2) 时间间隔减法Subtract()
时间间隔减法 Subtract() 的语法如下:public TimeSpan Subtract(TimeSpan ts);
【实例 6】时间间隔减法的应用。
TimeSpan ts1 = new TimeSpan(10, 20, 30); var ts2 = new TimeSpan(2, 30, 40); Console.WriteLine($"{ts1.Subtract(ts2)}");执行结果为:
07:49:50
3) 解析字符串为时间间隔Parse()和TryParse()
常用的 Parse() 方法语法如下:public static TimeSpan Parse(string s);上述 s 是要解析的日期或时间字符串,其可以是下列格式:
[ws][-]{d.}hh.mm[:ss[.ff]][ws]
- ws: 这是选项,表示空白;
- -: 这是选项,表示负号;
- d: 天数,范围是 0~10675799;
- : 文化特性,分隔天数