timespan使用方法详解

yizhihongxing

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日

相关文章

  • 详解ASP.NET Core MVC 源码学习:Routing 路由

    详解ASP.NET Core MVC 源码学习:Routing 路由 Routing是ASP.NET Core MVC中的一个重要组件,它负责将HTTP请求映射到相应的控制器和动作方法。在本文中,我们将深入学习ASP.NET Core MVC中Routing的实现原理和源码。 Routing的实现原理 Routing的实现原理可以分为两个部分:路由匹配和路由…

    C# 2023年5月16日
    00
  • C# 获取进程退出代码的实现示例

    C# 获取进程退出代码的实现示例包括以下步骤: 获取进程对象 可以使用Process类来获取指定进程的对象,代码如下: Process process = Process.GetProcessById(processId); 其中,processId为进程的ID号。如果希望通过进程的名称来获取进程对象,可以使用以下代码: Process process = …

    C# 2023年5月31日
    00
  • .net实现动态验证码功能

    下面是“.net实现动态验证码功能”的完整攻略: 1. 概述 动态验证码功能可以有效防止自动化脚本恶意攻击网站。一般而言,动态验证码通过生成一组数字或字母等随机字符,将其显示在网站页面上,并要求用户输入该组字符,以验证用户的真实性。 在.NET平台上,我们可以使用C#等开发语言实现动态验证码功能。具体而言,需要实现以下工作: 生成一组随机字符; 将这组字符显…

    C# 2023年5月31日
    00
  • 解决.Net Core项目发布在IIS上访问404的问题

    解决.Net Core项目发布在IIS上访问404的问题 在将ASP.NET Core应用程序发布到IIS上时,可能会遇到404错误。这通常是由于IIS未正确配置或ASP.NET Core应用程序未正确配置所致。在本攻略中,我们将详细讲解如何解决ASP.NET Core应用程序发布在IIS上访问404的问题,并提供两个示例说明。 步骤一:安装.NET Cor…

    C# 2023年5月17日
    00
  • C# 使用Fluent API 创建自己的DSL(推荐)

    当我们需要处理某些特定的问题时,我们可以使用一种特定的编程语言或工具,这种语言或工具专门用于解决此类问题。但是在使用这种特定语言或工具的情况下,我们可能会受到限制,因为只能使用特定的语法和工具。因此,我们可以使用DSL(Domain Specific Language,领域特定语言)来解决这个问题。DSL是一种针对特定领域的编程语言,可以让我们在这个领域内拥…

    C# 2023年6月7日
    00
  • asp.net 截取字符串代码

    ASP.NET 截取字符串有多种方法,以下是两种示例代码: 使用 Substring() 方法截取字符串 Substring() 方法可以用于截取一个字符串的一部分,该方法接受两个参数:第一个参数是截取字符串的起点位置,第二个参数是截取字符串的长度。以下是使用 Substring() 方法截取字符串的示例代码: string originalString =…

    C# 2023年5月31日
    00
  • C# 委托的三种调用示例(同步调用 异步调用 异步回调)

    C# 委托是一种特殊的数据类型,它允许在运行时将方法作为参数传递给其他方法,也可以作为返回值,这在异步编程中很有用。本篇攻略将重点讲解 C# 委托的三种调用示例:同步调用、异步调用和异步回调。 同步调用 同步调用是指调用一个方法时,程序会一直等待该方法执行完毕并返回结果后再继续执行下一步操作。这种调用方式是最常见的,也是最简单的方式。 以下代码示例展示了委托…

    C# 2023年6月1日
    00
  • .NET Core应用类型(Portable apps & Self-contained apps)

    在.NET Core中,有两种应用类型:Portable apps和Self-contained apps。本攻略将深入探讨这两种应用类型,并提供两个示例说明。 Portable apps Portable apps是一种.NET Core应用类型,它依赖于.NET Core运行时。Portable apps可以在任何安装了.NET Core运行时的计算机上…

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