📄 dateandtimetests.cs
字号:
Assert.AreEqual(DateTime.Parse("12/4/2003 23:58:00"),DateAndTime.DateAdd("n", -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("10/5/2003 00:00:00"),DateAndTime.DateAdd("m", -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("6/5/2003 00:00:00"),DateAndTime.DateAdd("q", -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/4/2003 23:59:58"),DateAndTime.DateAdd("s", -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/3/2003 00:00:00"),DateAndTime.DateAdd("w", -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("11/21/2003 00:00:00"),DateAndTime.DateAdd("ww", -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2001 00:00:00"),DateAndTime.DateAdd("yyyy", -2, DateTime.Parse("12/5/03"))); } [Test] public void DateAdd_DateInterval_3() { Assert.AreEqual(DateTime.Parse("12/5/03 00:00:00"),DateAndTime.DateAdd(DateInterval.Day, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.DayOfYear, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Hour, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Minute, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Month, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Quarter, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Second, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Weekday, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.WeekOfYear, 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Year, 0, DateTime.Parse("12/5/03"))); } [Test] public void DateAdd_String_3() { Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("d", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("y", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("h", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("n", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("m", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("q", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("s", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("w", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("ww", 0, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:00"),DateAndTime.DateAdd("yyyy", 0, DateTime.Parse("12/5/03"))); } [Test] [ExpectedException(typeof(InvalidCastException))] public void DateAdd_1() { // Argument 'DateValue' cannot be converted to type 'Date'. DateAndTime.DateAdd("d", 0, "12test5/03"); } [Test] [ExpectedException(typeof(OverflowException))] public void DateAdd_2() { DateAndTime.DateAdd("yyyy", 9999999999999999999L, DateTime.Parse("12/5/03")); } [Test] [ExpectedException(typeof(ArgumentOutOfRangeException))] public void DateAdd_3() { DateAndTime.DateAdd("yyyy", -5, new DateTime()); } [Test] [ExpectedException(typeof(ArgumentException))] public void DateAdd_5() { DateAndTime.DateAdd("yyy", 5, DateTime.Parse("12/5/03")); } #endregion #region DateDiff Tests [Test] public void DateDiff () { DateTime dtNow = DateTime.Now; DateTime dtOld = dtNow.AddYears(-1); // TODO: Test this better long diff = DateAndTime.DateDiff(DateInterval.Year, dtOld, dtNow, FirstDayOfWeek.System, FirstWeekOfYear.System); Assert.AreEqual(dtNow, dtOld.AddYears((int)diff),"#DD01"); DateTime dtJan1 = new DateTime(2002, 1, 1); DateTime dtDec31 = new DateTime(2001, 12, 31); diff = DateAndTime.DateDiff(DateInterval.Year, dtDec31, dtJan1, FirstDayOfWeek.System, FirstWeekOfYear.System); Assert.AreEqual(1L, diff,"#DD02"); diff = DateAndTime.DateDiff(DateInterval.Quarter, dtDec31, dtJan1, FirstDayOfWeek.System, FirstWeekOfYear.System); Assert.AreEqual(1L, diff,"#DD03"); diff = DateAndTime.DateDiff(DateInterval.Month, dtDec31, dtJan1, FirstDayOfWeek.System, FirstWeekOfYear.System); Assert.AreEqual(1L, diff,"#DD04"); DateTime dtJan4 = new DateTime(2001, 1, 4); // This is a Thursday DateTime dtJan9 = new DateTime(2001, 1, 9); // This is the next Tuesday long WD = DateAndTime.DateDiff(DateInterval.Weekday, dtJan4, dtJan9, FirstDayOfWeek.System, FirstWeekOfYear.System); Assert.AreEqual (0L, WD,"#DD05"); long WY = DateAndTime.DateDiff(DateInterval.WeekOfYear, dtJan4, dtJan9, FirstDayOfWeek.System, FirstWeekOfYear.System); Assert.AreEqual (1L, WY, "#DD06"); } [Test] public void DateDiff_DateInterval_1() { Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.Day, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.DayOfYear, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(17448,DateAndTime.DateDiff(DateInterval.Hour, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(1046880,DateAndTime.DateDiff(DateInterval.Minute, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(24,DateAndTime.DateDiff(DateInterval.Month, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(8,DateAndTime.DateDiff(DateInterval.Quarter, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(62812800,DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(103,DateAndTime.DateDiff(DateInterval.Weekday, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(2,DateAndTime.DateDiff(DateInterval.Year, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); } [Test] public void DateDiff_String_1() { Assert.AreEqual(727,DateAndTime.DateDiff("d", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff("y", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(17448,DateAndTime.DateDiff("h", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(1046880,DateAndTime.DateDiff("n", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(24,DateAndTime.DateDiff("m", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(8,DateAndTime.DateDiff("q", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(62812800,DateAndTime.DateDiff("s", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(103,DateAndTime.DateDiff("w", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); Assert.AreEqual(2,DateAndTime.DateDiff("yyyy", DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.System ,FirstWeekOfYear.System)); } [Test] public void DateDiff_FirstDayOfWeek_1() { Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.Day, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.DayOfYear, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(17448,DateAndTime.DateDiff(DateInterval.Hour, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(1046880,DateAndTime.DateDiff(DateInterval.Minute, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(24,DateAndTime.DateDiff(DateInterval.Month, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(8,DateAndTime.DateDiff(DateInterval.Quarter, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(62812800,DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(103,DateAndTime.DateDiff(DateInterval.Weekday, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(2,DateAndTime.DateDiff(DateInterval.Year, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Sunday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.Day, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.DayOfYear, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(17448,DateAndTime.DateDiff(DateInterval.Hour, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(1046880,DateAndTime.DateDiff(DateInterval.Minute, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(24,DateAndTime.DateDiff(DateInterval.Month, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(8,DateAndTime.DateDiff(DateInterval.Quarter, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(62812800,DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(103,DateAndTime.DateDiff(DateInterval.Weekday, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(2,DateAndTime.DateDiff(DateInterval.Year, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Monday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.Day, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.DayOfYear, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(17448,DateAndTime.DateDiff(DateInterval.Hour, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(1046880,DateAndTime.DateDiff(DateInterval.Minute, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(24,DateAndTime.DateDiff(DateInterval.Month, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(8,DateAndTime.DateDiff(DateInterval.Quarter, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(62812800,DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(103,DateAndTime.DateDiff(DateInterval.Weekday, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(2,DateAndTime.DateDiff(DateInterval.Year, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Tuesday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.Day, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.DayOfYear, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(17448,DateAndTime.DateDiff(DateInterval.Hour, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(1046880,DateAndTime.DateDiff(DateInterval.Minute, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(24,DateAndTime.DateDiff(DateInterval.Month, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(8,DateAndTime.DateDiff(DateInterval.Quarter, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(62812800,DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(103,DateAndTime.DateDiff(DateInterval.Weekday, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(2,DateAndTime.DateDiff(DateInterval.Year, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Wednesday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.Day, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.DayOfYear, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(17448,DateAndTime.DateDiff(DateInterval.Hour, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(1046880,DateAndTime.DateDiff(DateInterval.Minute, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(24,DateAndTime.DateDiff(DateInterval.Month, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(8,DateAndTime.DateDiff(DateInterval.Quarter, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(62812800,DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(103,DateAndTime.DateDiff(DateInterval.Weekday, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(2,DateAndTime.DateDiff(DateInterval.Year, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Thursday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.Day, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System)); Assert.AreEqual(727,DateAndTime.DateDiff(DateInterval.DayOfYear, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System)); Assert.AreEqual(17448,DateAndTime.DateDiff(DateInterval.Hour, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System)); Assert.AreEqual(1046880,DateAndTime.DateDiff(DateInterval.Minute, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System)); Assert.AreEqual(24,DateAndTime.DateDiff(DateInterval.Month, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System)); Assert.AreEqual(8,DateAndTime.DateDiff(DateInterval.Quarter, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System)); Assert.AreEqual(62812800,DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System)); Assert.AreEqual(103,DateAndTime.DateDiff(DateInterval.Weekday, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System)); Assert.AreEqual(2,DateAndTime.DateDiff(DateInterval.Year, DateTime.Parse("12/5/03"),DateTime.Parse("12/1/05"),FirstDayOfWeek.Friday ,FirstWeekOfYear.System));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -