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