BLOGGER  程式語法23 C#4 C# DateTime 日期轉換格式, 時間計算, 日期天數計算

C# Date() 日期與時間

標準日期和時間格式字串使用單一格式規範,定義日期和時間值的文字表示。任何包含一個以上字元(包含空白字元)的日期和時間格式字串都會解譯為自訂日期和時間格式字串,自訂日期和時間格式字串可以搭配日期和時間執行個體的 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

轉換字串格式為日期

文法:

DateTime dt = Convert.ToDateTime(myDateString);

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

計算兩個時間差

文法:

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

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);

本年年初的日期

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-01-01"))
.AddDays(-1).ToShortDateString();

下年度的起止日期

startNextYear = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01"))
.AddYears(1).ToShortDateString();

endNextYear = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01"))
.AddYears(2).AddDays(-1).ToShortDateString();



整理中待續...

Leave Response    

請先登入






TM+ © 2002-2014 hANjAN STUDIO and author.
Script Execution time: 0.31 seconds.