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