C#常用类 [4] DateTime与TimeSpan

参考或转载至:MSDNC#中比较常用的DateTime结构的使用方法C#的TimeSpan介绍

1 DateTime 常见用法

1.1DateTime常见属性

序号 属性名 解释
1 Now 获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为本地时间。
2 Date 获取此实例的日期部分。
3 Today 获取当前日期。
4 Day 获取此实例所表示的日期为该月中的第几天。
5 DayOfWeek 获取此实例所表示的日期是星期几。
6 DayOfYear 获取此实例所表示的日期是该年中的第几天。
7 Year 获取此实例所表示日期的年份部分。
8 Month 获取此实例所表示日期的月份部分。
9 Hour 获取此实例所表示日期的小时部分。
10 Minute 获取此实例所表示日期的分钟部分。
11 Second 获取此实例所表示日期的秒部分。
12 Millisecond 获取此实例所表示日期的毫秒部分。
13 Kind 获取一个值,该值指示由此实例表示的时间是基于本地时间、协调世界时 (UTC),还是两者皆否。
14 Ticks 获取表示此实例的日期和时间的计时周期数。
15 TimeOfDay 获取此实例的当天的时间。
16 UtcNow 获取一个 DateTime 对象,该对象设置为此计算机上的当前日期和时间,表示为协调通用时间 (UTC)。

1.2DataTime常见方法

1.2.1 DateTime.Now

   按年、月、日分别统计数据,可使用DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day获取。同理,当前的时分秒也可以这样的方式获取。还可以在当前时间加上一个段时间等操作。

static void Main(string[] args)
{
    //实例化一个DateTime对象
    DateTime newChina = new DateTime(1949, 10, 1, 12, 0, 0);
    Console.WriteLine(newChina);
    //使用DateTime.Now属性则可获得当前时间。
    DateTime nowTime = DateTime.Now;
    Console.WriteLine("Time Now is :{0},{1},{2}", nowTime.Year, nowTime.Month, nowTime.Day);
    Console.WriteLine("Time Now2 is :{0},{1},{2},{3}", nowTime.Hour, nowTime.Minute, nowTime.Second,nowTime.Millisecond);
    Console.WriteLine("3 Days after is:{0}", nowTime.AddDays(3));
    Console.ReadLine();
}

结果:
在这里插入图片描述

1.2.2 ToString方法

   DateTime的ToString方法有四种重载方式。其中一个重载方式允许传入String,这就意味着你可以将当前DateTime对象转换成等效的字符串形式。比如我们将当前时间输出,日期按yyyy-mm-dd格式,时间按hh:mm:ss格式。具体点这里

static void Main(string[] args)
 {
      Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd"));
      Console.WriteLine(DateTime.Now.ToString("hh:mm:ss"));
 }

在这里插入图片描述

2 TimeSpan常见用法

TimeSpan:表示一个时间间隔。

2.1 构造函数

TimeSpan(Int64) 将 TimeSpan结构的新实例初始化为指定的刻度数。
(DateTime.Tick:是计算机的一个计时周期,单位是一百纳秒,即一千万分之一秒)
TimeSpan(Int32, Int32, Int32) 将 TimeSpan结构的新实例初始化为指定的小时数、分钟数和秒数。
TimeSpan(Int32, Int32, Int32, Int32) 将 TimeSpan结构的新实例初始化为指定的天数、小时数、分钟数和秒数。
TimeSpan(Int32, Int32, Int32, Int32, Int32) 将新的 TimeSpan结构初始化为指定的天数、小时数、分钟数、秒数和毫秒数。

static void Main(string[] args)
 {
      TimeSpan ts1 = new TimeSpan(4, 20, 33);  //将时间间隔ts1初始化为4小时20分33秒
      TimeSpan ts2 = new TimeSpan(2, 10, 36, 45);  //将时间间隔ts2初始化为2天10小时36分45秒
      TimeSpan ts3 = new TimeSpan(6, 12, 56, 45, 23);  //将时间间隔ts3初始化为6天12小时56分45秒23毫秒
      Console.WriteLine(ts1);
      Console.WriteLine(ts2);
      Console.WriteLine(ts3);
}

结果为:
在这里插入图片描述

2.2 TimeSpan属性

序号 属性 解释
1 Days 直接取出TimeSpan结构所表示的时间间隔的天数部分。
2 Hours 直接取出TimeSpan结构所表示的时间间隔的小时部分。
3 Minutes 直接取出TimeSpan结构所表示的时间间隔的分钟部分。
4 Seconds 直接取出TimeSpan结构所表示的时间间隔的秒数部分。
5 Milliseconds 直接取出TimeSpan结构所表示的时间间隔的毫秒部分。
6 Ticks 表示多少个一百纳秒(计算机的一个计时单位)。
7 TotalDays 将TimeSpan结构所表示的时间间隔换算成等效天数。
8 TotalHours 将TimeSpan结构所表示的时间间隔换算成等效小时数。
9 TotalMinutes 将TimeSpan结构所表示的时间间隔换算成等效分钟数。
10 TotalSeconds 将TimeSpan结构所表示的时间间隔换算成等效秒数数。

例子:

static void Main(string[] args)
{
      TimeSpan ts4 = new TimeSpan(7, 18, 23, 41, 576);//将时间间隔ts4初始化为7天18小时23分41秒576毫秒(毫秒以千进制)
      DateTime dt1 = new DateTime(2018, 1, 10, 20, 44, 0);
      DateTime dt2 = DateTime.Now;
      ts4 = dt2 - dt1;  //重新给ts4赋值
      Console.WriteLine("时间间隔为:{0}", ts4);
      Console.WriteLine("时间间隔的天数部分:{0}", ts4.Days);
      Console.WriteLine("时间间隔的小时部分:{0}", ts4.Hours);
      Console.WriteLine("时间间隔的分钟部分:{0}", ts4.Minutes);
      Console.WriteLine("时间间隔的秒部分:{0}", ts4.Seconds);
      Console.WriteLine("时间间隔的毫秒部分:{0}", ts4.Milliseconds);
      Console.WriteLine("时间间隔的等效刻度数(计时单位:一百纳秒):{0}", ts4.Ticks); //输出多少个一百纳秒:30天*24小时*60分*60秒*1000毫秒+03小时*60分*60秒*1000毫秒+09分*60秒*1000毫秒+48秒*1000毫秒+599毫秒=2603388599毫秒,因为刻度是一百纳秒(一千万分之一秒),毫秒为一千分之一秒,所以一毫秒等于1万乘以一百纳秒,所以最后等于2603388599毫秒*10000+5781(个一百纳秒)=26033885995781。
      Console.WriteLine("时间间隔的等效天数:{0}", ts4.TotalDays);
      Console.WriteLine("时间间隔的等效小时数:{0}", ts4.TotalHours);
      Console.WriteLine("时间间隔的等效分钟数:{0}", ts4.TotalMinutes);
      Console.WriteLine("时间间隔的等效秒数:{0}", ts4.TotalSeconds);
      Console.WriteLine("时间间隔的等效毫秒数:{0}", ts4.TotalMilliseconds);
}

在这里插入图片描述

3 应用:计算程序运行时间

例子:计算10亿次加计算所需要的时间。

static void Main(string[] args)
{
      DateTime t0 = DateTime.Now;
      double num = 1;
      for (int i = 1; i < 1000000000; i++)
      {
          num += i;
       }
       DateTime t1 = DateTime.Now;
	   TimeSpan deltT = t1 - t0;
       Console.WriteLine("总计算时间:" + deltT.TotalMinutes + "s");
       Console.WriteLine("总计算时间:" + deltT.TotalSeconds + "s");
       Console.WriteLine("总计算时间:" + deltT.TotalMilliseconds + "m");
}

结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_29406323/article/details/86182706