C# Date() 日期與時間

電腦程式應用、標準日期和時間格式字串,使用單一格式規範,定義日期和時間值的文字表示。任何包含一個以上之 String 字元(包含空白字元)的日期和時間格式「字串」都可能會解譯為自訂日期和時間格式「初始值」,自訂日期和時間格式字串可以搭配日期和時間執行個體的 ToString 方法或是支援複合格式的方法使用。


轉換日期格式為字串 ToString 日期型字串

文法:日期和時間參數大小寫解譯不同 MM=month, mm=Minutes, HH=24hours, hh=12hours

DateTime myDate = DateTime.Now;
string myDateString = myDate.ToString("yyyy-MM-dd HH:mm:ss");

2011-10-16 02:33:54


轉換字串格式為日期格式 ToDateTime

DateTime dt = Convert.ToDateTime(myDateString);

2011/10/16 上午 02:33:54


計算兩個時間差

Date or Time Calculator Duration Between Two Times, Dates
計算兩個日期之間相隔的天數、月數或年數。計算兩個時間的差距,用結束日期減開始日期,把 TotalDays 兩個時間拿來相減,計算之後要設定適當顯示格式的結果。

DateTime sDate = Convert.ToDateTime("2010-10-15 15:50:39");
DateTime eDate = Convert.ToDateTime("2010-10-25 15:50:39");
TimeSpan ts = sDate - eDate;
double days = ts.TotalDays;
TextBox.Text = "差距 " + Convert.ToInt32(days).ToString() + "";

差距 -10



Application Example

日期間隔的差距,先取出定位日期時間「獲取當前日期」依照 AddDays, AddMonths, AddYears 計算出結果。再取出計算的值日期格式轉換,來應用如 SQL 資料庫列出或是符合的資料內容。在給定日期中查找一周中的星期一的日期。傳回特定日期的週數、可計算出過去或未來指定日期,是屬於一周中的星期幾。函數接受參數,表示要增加或減少的天數、月數或年數。計算出結果後可以使用 ToString 函數來將日期轉換成不同的格式。ToString 函數可以接受一個字串參數,表示要轉換的格式。

DateTime dt = DateTime.Now; 取得目前日期時間

本週一的日期

DateTime startWeek = dt.AddDays(1-Convert.ToInt32(dt.DayOfWeek.ToString("d")));

本週日的日期

DateTime endWeek = startWeek.AddDays(6);


本月之月初的日期

DateTime startMonth = dt.AddDays(1 - dt.Day);

本月之月底的日期

DateTime endMonth = startMonth.AddMonths(1).AddDays(-1);


本季初的日期

DateTime startQuarter = dt.AddMonths(0-(dt.Month-1) % 3).AddDays(1-dt.Day);

本季末的日期

DateTime endQuarter = startQuarter.AddMonths(3).AddDays(-1);


年度的計算 Year Date

在程式語言中,年度日期 Year Date 的計算是常見的問題。不同的程式語言 Program Language 有不同的方式來處理日期和時間,例如使用不同的資料型態、格式、函數或模組。使用 DateTime.Parse 的來處理日期和時間,可以直接獲取日期的計算,需要考慮閏年的情況問題和驗證。

本年年初的日期

DateTime startYear = new DateTime(dt.Year, 1, 1);

本年年末的日期

DateTime endYear = new DateTime(dt.Year, 12, 31);

上年度的起止日期

startBeforeYear = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01"))
.AddYears(-1).ToShortDateString();
endBeforeYear = DateTime.Parse(DateTime.Now.ToString("yyyy-12-31"))
.AddDays(-1).ToShortDateString();

本年度的起止日期

dateTimePickerStart.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01"));
dateTimePickerEnd.Value = DateTime.Now;

下年度的起止日期

startNextYear = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01"))
.AddYears(1).ToShortDateString();
endNextYear = DateTime.Parse(DateTime.Now.ToString("yyyy-12-31"))
.AddYears(2).AddDays(-1).ToShortDateString();
dateTimePickerStart.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1);
dateTimePickerEnd.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-12-31")).AddYears(-1);