首页 > 编程语言 >C#中TimeSpan和DateTime的用法详解

C#中TimeSpan和DateTime的用法详解

时间:2023-11-29 15:55:36浏览次数:45  
标签:TimeSpan C# 获取 间隔 DateTime int 时间

在C#编程中,TimeSpanDateTime是常用的日期和时间处理类。它们提供了丰富的方法和属性,方便我们对日期和时间进行操作和格式化。本篇博客将详细介绍TimeSpanDateTime的用法。

TimeSpan

TimeSpan类用于表示一段时间间隔,可以表示从几天到几个纳秒的时间。下面是TimeSpan类的常用属性和方法:

属性

  • Days:获取或设置时间间隔中的天数部分。
  • Hours:获取或设置时间间隔中的小时部分。
  • Minutes:获取或设置时间间隔中的分钟部分。
  • Seconds:获取或设置时间间隔中的秒部分。
  • Milliseconds:获取或设置时间间隔中的毫秒部分。
  • TotalDays:获取时间间隔的总天数。
  • TotalHours:获取时间间隔的总小时数。
  • TotalMinutes:获取时间间隔的总分钟数。
  • TotalSeconds:获取时间间隔的总秒数。
  • TotalMilliseconds:获取时间间隔的总毫秒数。

构造函数

  • TimeSpan():初始化一个时间间隔为零的TimeSpan对象。
  • TimeSpan(int hours, int minutes, int seconds):使用指定的小时、分钟和秒初始化一个TimeSpan对象。
  • TimeSpan(int days, int hours, int minutes, int seconds):使用指定的天数、小时、分钟和秒初始化一个TimeSpan对象。

方法

  • Add(TimeSpan ts):将指定的时间间隔添加到当前时间间隔。
  • Subtract(TimeSpan ts):从当前时间间隔中减去指定的时间间隔。
  • ToString():将时间间隔转换为字符串表示形式。

下面是一些示例代码:

// 创建一个时间间隔为2天的TimeSpan对象
TimeSpan ts1 = new TimeSpan(2, 0, 0, 0);
Console.WriteLine(ts1.TotalDays);  // 输出:2

// 创建一个时间间隔为1小时30分钟的TimeSpan对象
TimeSpan ts2 = new TimeSpan(0, 1, 30, 0);
Console.WriteLine(ts2.TotalMinutes);  // 输出:90

// 将两个时间间隔相加
TimeSpan sum = ts1.Add(ts2);
Console.WriteLine(sum.TotalHours);  // 输出:50

// 将一个时间间隔从另一个时间间隔中减去
TimeSpan diff = ts1.Subtract(ts2);
Console.WriteLine(diff.TotalMinutes);  // 输出:1410

// 将时间间隔转换为字符串表示
Console.WriteLine(ts1.ToString());  // 输出:2.00:00:00

DateTime

DateTime类用于表示日期和时间,并提供了各种方法和属性用于日期和时间的计算、格式化和比较。下面是DateTime类的常用属性和方法:

属性

  • Date:获取日期部分。
  • TimeOfDay:获取时间部分。
  • DayOfWeek:获取星期几。
  • Day:获取当前日期的天数。
  • Month:获取当前日期的月份。
  • Year:获取当前日期的年份。
  • Hour:获取当前时间的小时数。
  • Minute:获取当前时间的分钟数。
  • Second:获取当前时间的秒数。
  • Millisecond:获取当前时间的毫秒数。
  • Now:获取当前日期和时间。
  • Today:获取当前日期。

构造函数

  • DateTime():初始化一个DateTime对象,表示当前日期和时间。
  • DateTime(int year, int month, int day):使用指定的年、月、日初始化一个DateTime对象。
  • DateTime(int year, int month, int day, int hour, int minute, int second):使用指定的年、月、日、小时、分钟和秒初始化一个DateTime对象。

方法

  • Add(TimeSpan value):将指定的时间间隔加到当前DateTime对象。
  • Subtract(TimeSpan value):从当前DateTime对象减去指定的时间间隔。
  • ToString():将DateTime对象转换为字符串表示形式。

下面是一些示例代码:

// 获取当前日期和时间
DateTime now = DateTime.Now;
Console.WriteLine(now);  // 输出:2022/10/10 09:30:00

// 获取当前日期
DateTime today = DateTime.Today;
Console.WriteLine(today);  // 输出:2022/10/10 00:00:00

// 创建一个指定日期和时间的DateTime对象
DateTime dt1 = new DateTime(2022, 10, 10, 8, 30, 0);
Console.WriteLine(dt1.DayOfWeek);  // 输出:Monday

// 将时间间隔加到当前日期和时间
TimeSpan ts = new TimeSpan(1, 0, 0, 0);
DateTime dt2 = now.Add(ts);
Console.WriteLine(dt2);  // 输出:2022/10/11 09:30:00

// 从当前日期和时间减去时间间隔
DateTime dt3 = now.Subtract(ts);
Console.WriteLine(dt3);  // 输出:2022/10/09 09:30:00

// 将DateTime对象转换为字符串表示
Console.WriteLine(now.ToString("yyyy-MM-dd HH:mm:ss"));  // 输出:2022-10-10 09:30:00

以上就是TimeSpanDateTime类的用法详解。通过使用这两个类,我们可以方便地处理日期和时间,并进行各种操作和格式化。

参考资料:

标签:TimeSpan,C#,获取,间隔,DateTime,int,时间
From: https://www.cnblogs.com/jack-jiang0/p/17865052.html

相关文章

  • 如何在OpenWrt平台新增一个package
    如何在OpenWrt平台新增一个package目录如何在OpenWrt平台新增一个package背景示例用户态模块内核模块用户态模块+内核模块背景OpenWrt的编译框架做得非常好,只需要在固定的目录下,放置通用的Makefile,其编译框架即可正常读取该Makefile,并用指定的toolchains开始编译。自定义的pac......
  • CSPNet跨阶段局部网络方法
    CSPNet跨阶段局部网络方法目录CSPNet跨阶段局部网络方法背景和问题主要解决问题网络结构特征融合策略CSPnet代码结构参考资料论文地址:https://arxiv.org/pdf/1911.11929.pdf背景和问题随着卷积神经网络结构变得更深更宽,扩展神经网络的体系结构通常会带来更多的计算轻量级网......
  • 用C#实现的几种常用数据校验方法整理(CRC校验;LRC校验;BCC校验;累加和校验)
    CRC即循环冗余校验码(CyclicRedundancyCheck):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完......
  • C语言宏相关知识
    $$C语言宏$$1.宏定义:宏定义又称为宏替换、宏代换,简称“宏”,是C提供的三种预处理功能的其中一种①。其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率。2.格式:简单宏定义格式:#define<宏名/标识符><字符串>eg:#definePI3.1415926定义......
  • DNS解析 CNAME!
    最近碰到一个需求,业务系统的访问域名是www.example.com,但是客户提需求能否通过example.com直接访问呢?讲实话我觉得这是没事找事,但要实现也是有办法的。这就涉及到DNS的CNAME记录了,我们都知道A记录时域名指向IPV4地址,那CNAME就是域名指向域名,我们新建一条CNAME记录@.example.com......
  • PostgreSQL - Change Timezone
    ThedefaulttimezoneofanewlycreateddatabaseisUTC. Youcansetthetimezonetoanewvaluesessionlyorglobally:zzh@ZZHPC:~$dockerexec-itpostgres16psql-Urootzimple_bankpsql(16.1)Type"help"forhelp.zimple_bank=#SELECTc......
  • .Net Core 单元测试获取配置文件节点值
     单元测试类:ServiceProvider_serviceProvider;IConfiguration_config;[SetUp]publicvoidSetup(){_config=newConfigurationBuilder().Add(newJsonConfigurationSource{Path="appsettings.jso......
  • CBV源码分析
    1.路由配置path('index/',视图类名.as_view())#as_view是类的绑定方法2.执行流程(分析)path('index/',index),--->请求来了,路由匹配成功会执行index(request,)path('index/',UserView.as_view()),--->同样的,请求来了,路由匹配成功则会执行UserView.as_view()(r......
  • MFC的CFile类以追加模式写文件
    CFile类的Open函数有CFile::modeNoTruncate模式,该模式是非截断的意思,再配合CFile::modeCreate,意味着如果文件不存在,则创建,如果文件存在,则不会将文件内容清空。当对文件进行追加写入时,有一个小细节就是打开文件模式中虽然添加了这两种OpenFlag,但是文件指针并未移动到末尾,因此追加出......
  • nginx依赖包:pcre、zlib、OpenSSL、gd-devel
    学习自:《nginx经典教程》13页1、问题来源在安装nginx时,有一步需要安装依赖包:sudoyuminstallgcc-c++pcrepcre-develzlibzlib-developensslopenssl-devel这一段是啥意思,这些包有什么用?2、依赖包gcc-c++configure脚本中使用的C编译器为cc。该依赖包为C编译器......