TimeSpan使用方法详解
什么是TimeSpan?
TimeSpan是.NET Framework中表示时间间隔的一个结构体,它用于表示两个时间点之间的时间间隔,或一段时间的持续时间。
TimeSpan包括天数、小时数、分钟数、秒数和毫秒数,可以使用各种方式构造TimeSpan实例。TimeSpan在.NET平台中被广泛用于处理时间。
在代码中创建TimeSpan
创建TimeSpan实例的方式有多种,其中最常用的方式是使用构造函数。TimeSpan构造函数的参数可以是一个时间间隔的很多种数据类型,包括整数、小数和其他TimeSpan实例。
从天、小时、分钟、秒、毫秒创建TimeSpan
// Create a TimeSpan representing 2 days
TimeSpan twoDayTimeSpan = new TimeSpan(2, 0, 0, 0);
// Create a TimeSpan representing 2 hours
TimeSpan twoHourTimeSpan = new TimeSpan(0, 2, 0, 0);
// Create a TimeSpan representing 2 minutes
TimeSpan twoMinuteTimeSpan = new TimeSpan(0, 0, 2, 0);
// Create a TimeSpan representing 2 seconds
TimeSpan twoSecondTimeSpan = new TimeSpan(0, 0, 0, 2);
// Create a TimeSpan representing 2 milliseconds
TimeSpan twoMillisecondTimeSpan = new TimeSpan(0, 0, 0, 0, 2);
从Ticks创建TimeSpan
Ticks是TimeSpan所使用的最小时间单位,1个Ticks等于100纳秒。从Ticks构造TimeSpan需要传入一个long类型的值,代表了从0001年1月1日午夜12点到指定时间的Ticks数。
// Create a TimeSpan from Ticks
TimeSpan twoMillisecondTimeSpan = new TimeSpan(2); // equivalent to TimeSpan.FromTicks(2)
从TimeSpan创建TimeSpan
TimeSpan twoDayTimeSpan = new TimeSpan(2, 0, 0, 0);
TimeSpan fourHourTimeSpan = new TimeSpan(0, 4, 0, 0);
TimeSpan sixHourTimeSpan = twoDayTimeSpan + fourHourTimeSpan;
在这种情况下,两个TimeSpan被相加。这样可以创建一个时间间隔,该时间间隔是由两个时间间隔之和得出的。
TimeSpan的属性和方法
属性
Ticks
获取TimeSpan表示的时间间隔的总Ticks数
TimeSpan twoDayTimeSpan = new TimeSpan(2, 0, 0, 0);
long totalTicks = twoDayTimeSpan.Ticks; // equals 172800000000
Days
获取TimeSpan表示的时间间隔的总天数
TimeSpan twoDayTimeSpan = new TimeSpan(2, 0, 0, 0);
int totalDays = twoDayTimeSpan.Days; // equals 2
Hours
获取TimeSpan表示的时间间隔的小时数
TimeSpan twoHourTimeSpan = new TimeSpan(0, 2, 0, 0);
int totalHours = twoHourTimeSpan.Hours; // equals 2
Minutes
获取TimeSpan表示的时间间隔的分钟数
TimeSpan twoMinuteTimeSpan = new TimeSpan(0, 0, 2, 0);
int totalMinutes = twoMinuteTimeSpan.Minutes; // equals 2
Seconds
获取TimeSpan表示的时间间隔的秒数
TimeSpan twoSecondTimeSpan = new TimeSpan(0, 0, 0, 2);
int totalSeconds = twoSecondTimeSpan.Seconds; // equals 2
Milliseconds
获取TimeSpan表示的时间间隔的毫秒数
TimeSpan twoMillisecondTimeSpan = new TimeSpan(0, 0, 0, 0, 2);
int totalMilliseconds = twoMillisecondTimeSpan.Milliseconds; // equals 2
TotalDays
获取TimeSpan表示的时间间隔的总天数(浮点数)
TimeSpan twoDayTimeSpan = new TimeSpan(2, 0, 0, 0);
double totalDays = twoDayTimeSpan.TotalDays; // equals 2
TotalHours
获取TimeSpan表示的时间间隔的总小时数(浮点数)
TimeSpan twoHourTimeSpan = new TimeSpan(0, 2, 0, 0);
double totalHours = twoHourTimeSpan.TotalHours; // equals 2
TotalMinutes
获取TimeSpan表示的时间间隔的总分钟数(浮点数)
TimeSpan twoMinuteTimeSpan = new TimeSpan(0, 0, 2, 0);
double totalMinutes = twoMinuteTimeSpan.TotalMinutes; // equals 2
TotalSeconds
获取TimeSpan表示的时间间隔的总秒数(浮点数)
TimeSpan twoSecondTimeSpan = new TimeSpan(0, 0, 0, 2);
double totalSeconds = twoSecondTimeSpan.TotalSeconds; // equals 2
TotalMilliseconds
获取TimeSpan表示的时间间隔的总毫秒数(浮点数)
TimeSpan twoMillisecondTimeSpan = new TimeSpan(0, 0, 0, 0, 2);
double totalMilliseconds = twoMillisecondTimeSpan.TotalMilliseconds; // equals 2
方法
Add
将指定的TimeSpan添加到此实例中
TimeSpan twoDayTimeSpan = new TimeSpan(2, 0, 0, 0);
TimeSpan fourHourTimeSpan = new TimeSpan(0, 4, 0, 0);
TimeSpan sixHourTimeSpan = twoDayTimeSpan.Add(fourHourTimeSpan);
// equals 2 days + 4 hours = 2 days and 4 hours
Subtract
从此实例中减去指定的TimeSpan
TimeSpan twoDayTimeSpan = new TimeSpan(2, 0, 0, 0);
TimeSpan fourHourTimeSpan = new TimeSpan(0, 4, 0, 0);
TimeSpan fourDayTimeSpan = twoDayTimeSpan.Subtract(fourHourTimeSpan);
// equals 2 days - 4 hours = 1 day and 20 hours
示例
示例1:计算程序执行时间
static void Main(string[] args)
{
DateTime start = DateTime.Now; // 记录程序开始时间
// 计算函数调用
DateTime end = DateTime.Now; // 记录程序结束时间
TimeSpan timeSpan = end - start; // 计算时间间隔
Console.WriteLine("程序执行时间为:" + timeSpan.TotalSeconds + "秒");
}
示例2:计算任务执行时间
static async Task Main(string[] args)
{
TimeSpan timeout = TimeSpan.FromSeconds(30);
CancellationTokenSource cts = new CancellationTokenSource(timeout);
try
{
await Task.Delay(TimeSpan.FromSeconds(60), cts.Token);
}
catch (TaskCanceledException)
{
Console.WriteLine("任务已经超时");
}
}
以上就是TimeSpan使用方法的详解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:timespan使用方法详解 - Python技术站