timespan使用方法详解

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技术站

(1)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • C#给Word中的字符添加着重号的方法详解

    C#给Word中的字符添加着重号的方法详解 在C#中,可以使用Microsoft.Office.Interop.Word来实现对Word文档的自动操作。以下是给Word中的字符添加着重号的方法的详细攻略。 前置条件 安装Microsoft.Office.Interop.Word。 引用Microsoft.Office.Interop.Word。 实现步骤 创…

    C# 2023年6月7日
    00
  • log4net创建系统日志的详细步骤

    log4net是一个Apache的开源项目,是一个.NET平台下的日志记录组件。它可以帮我们方便的记录系统日志,支持多种不同的记录方式,比如控制台输出,写入文件,发送到远程服务器等。下面详细讲解在.NET项目中使用log4net创建系统日志的详细步骤,包括配置、使用以及示例。 步骤一:安装log4net 在开始使用log4net创建系统日志之前,我们需要先安…

    C# 2023年5月31日
    00
  • Android开源项目PullToRefresh下拉刷新功能详解2

    Android开源项目PullToRefresh下拉刷新功能详解2 概述 PullToRefresh是一款常见的Android开源下拉刷新库,它支持常见的ListView、GridView、ScrollView、WebView、ViewPager等控件的下拉刷新操作,使用简单方便,是Android开发者常用的开源库之一。 本文将主要讲解PullToRefre…

    C# 2023年6月6日
    00
  • C#编程实现取整和取余的方法

    以下是C#编程实现取整和取余的方法的完整攻略。 取整方法 要对数值进行取整操作,可以使用C#内置的Round()方法。该方法有多种重载形式,最常用的是对double和decimal类型的数值进行取整操作。Round()方法的语法如下: Math.Round(double/decimal d); 其中,d表示要进行取整操作的数值。 Round()方法默认的取整…

    C# 2023年6月6日
    00
  • ASP.NET缓存方法分析和实践示例代码第2/2页

    下面我会详细讲解ASP.NET缓存方法分析和实践示例代码第2/2页的完整攻略。 1. 简介 缓存是提高应用程序性能的重要手段之一。ASP.NET框架提供了多种缓存方法,本文将讨论分析ASP.NET缓存方法并提供示例代码。 2. ASP.NET缓存方法分析 ASP.NET框架提供的缓存方法主要有以下几种: (1)HttpContext.Cache HttpCo…

    C# 2023年5月31日
    00
  • 如何利用c#实现通用守护进程

    如何利用C#实现通用守护进程 什么是守护进程 守护进程(Daemon)是运行在后台的一种特殊进程。它通常在操作系统启动时自动启动,并且一直运行,直到系统关机。守护进程主要用于在后台执行一些特殊的任务,比如系统日志的收集和记录、维护系统状态、保持网络连接等。 C#实现守护进程 在C#中实现守护进程需要借助System.ServiceProcess命名空间。下面…

    C# 2023年5月15日
    00
  • c#用Treeview实现FolderBrowerDialog 和动态获取系统图标(运用了Win32 dll类库)

    下面是详细讲解“c#用Treeview实现FolderBrowerDialog 和动态获取系统图标”的攻略。 一、实现FolderBrowerDialog 实现FolderBrowerDialog有很多种方式,这里我们介绍一种使用TreeView控件来实现。TreeView可以创建一个类似于Windows资源管理器的层次结构,同时可以响应点击事件。我们可以利…

    C# 2023年6月7日
    00
  • C#将HashTable中键列表或值列表复制到一维数组的方法

    要将HashTable中的键列表或值列表复制到一维数组中,可以使用CopyKeys()或CopyValues()方法。这两个方法返回一个数组,该数组包含Hash表中所有键或值。 具体步骤如下: 1. 创建一个HashTable对象并赋值 // 创建一个HashTable对象 Hashtable ht = new Hashtable(); // 赋值 ht.A…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部