C#常用類(三) 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");
}

結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章