📄 dateandtimetests.cs
字号:
// DateAndTimeTest.cs - NUnit Test Cases for Microsoft.VisualBasic.DateAndTime//// Boris Kirzner <borisk@mainsoft.com>// Chris J. Breisch (cjbreisch@altavista.net)// Martin Willemoes Hansen (mwh@sysrq.dk)// Guy Cohen (guyc@mainsoft.com)// // // Copyright (c) 2002-2006 Mainsoft Corporation.// Copyright (C) 2004 Novell, Inc (http://www.novell.com)//// Permission is hereby granted, free of charge, to any person obtaining// a copy of this software and associated documentation files (the// "Software"), to deal in the Software without restriction, including// without limitation the rights to use, copy, modify, merge, publish,// distribute, sublicense, and/or sell copies of the Software, and to// permit persons to whom the Software is furnished to do so, subject to// the following conditions:// // The above copyright notice and this permission notice shall be// included in all copies or substantial portions of the Software.// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.//using NUnit.Framework;using System;using System.IO;using System.Globalization;using Microsoft.VisualBasic;namespace MonoTests.Microsoft_VisualBasic{ [TestFixture] public class DateAndTimeTests { String date; String time; public DateAndTimeTests() { } [TestFixtureSetUp] public void TestFixtureSetUp() { date = DateAndTime.DateString; time = DateAndTime.TimeString; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); } [TestFixtureTearDown] public void TestFixtureTearDown() { DateAndTime.DateString = date; DateAndTime.TimeString = time; } [SetUp] public void GetReady() { } [TearDown] public void Clean() { } #region DateAdd Tests [Test] public void DateAdd() { if (Helper.OnMono) Assert.Ignore ("Buggy Mono: #81783"); DateTime dtNow = DateTime.Now; Assert.AreEqual( dtNow.AddYears(1), DateAndTime.DateAdd(DateInterval.Year, 1, dtNow), "#DA01"); Assert.AreEqual( dtNow.AddYears(-1), DateAndTime.DateAdd("yyyy", -1, dtNow),"#DA02"); bool caughtException = false; try { DateAndTime.DateAdd("foo", 1, dtNow); } catch (Exception e) { Assert.AreEqual(e.GetType(), typeof(ArgumentException),"#DA03"); caughtException = true; } Assert.AreEqual(true, caughtException, "#DA04"); Assert.AreEqual(dtNow.AddMonths(6), DateAndTime.DateAdd(DateInterval.Quarter, 2, dtNow),"#DA05"); Assert.AreEqual( dtNow.AddMonths(-6), DateAndTime.DateAdd("q", -2, dtNow),"#DA06"); Assert.AreEqual(dtNow.AddMonths(3), DateAndTime.DateAdd(DateInterval.Month, 3, dtNow),"#DA07"); Assert.AreEqual(dtNow.AddMonths(-3), DateAndTime.DateAdd("m", -3, dtNow),"#DA08"); Assert.AreEqual(dtNow.AddDays(28), DateAndTime.DateAdd(DateInterval.WeekOfYear, 4, dtNow),"#DA09"); Assert.AreEqual(dtNow.AddDays(-28), DateAndTime.DateAdd("ww", -4, dtNow),"#DA10"); Assert.AreEqual(dtNow.AddDays(5), DateAndTime.DateAdd(DateInterval.Weekday, 5, dtNow),"#DA11"); Assert.AreEqual(dtNow.AddDays(-5), DateAndTime.DateAdd("w", -5, dtNow),"#DA12"); Assert.AreEqual(dtNow.AddDays(6), DateAndTime.DateAdd(DateInterval.DayOfYear, 6, dtNow),"#DA13"); Assert.AreEqual(dtNow.AddDays(-6), DateAndTime.DateAdd("y", -6, dtNow),"#DA14"); Assert.AreEqual(dtNow.AddDays(7), DateAndTime.DateAdd(DateInterval.Day, 7, dtNow),"#DA15"); Assert.AreEqual(dtNow.AddDays(-7), DateAndTime.DateAdd("d", -7, dtNow),"#DA16"); Assert.AreEqual(dtNow.AddHours(8), DateAndTime.DateAdd(DateInterval.Hour, 8, dtNow),"#DA17"); Assert.AreEqual(dtNow.AddHours(-8), DateAndTime.DateAdd(DateInterval.Hour, -8, dtNow),"#DA18"); Assert.AreEqual(dtNow.AddMinutes(9), DateAndTime.DateAdd(DateInterval.Minute, 9, dtNow),"#DA19"); Assert.AreEqual(dtNow.AddMinutes(-9), DateAndTime.DateAdd("n", -9, dtNow),"#DA20"); Assert.AreEqual(dtNow.AddSeconds(10), DateAndTime.DateAdd(DateInterval.Second, 10, dtNow),"#DA21"); Assert.AreEqual(dtNow.AddSeconds(-10), DateAndTime.DateAdd("s", -10, dtNow),"#DA22"); caughtException = false; try { DateAndTime.DateAdd(DateInterval.Year, int.MinValue, dtNow); } catch (Exception e) { caughtException = true; Assert.AreEqual (typeof (Exception), e.GetType (), "#DA23"); } // Assert.AreEqual("#DA24", caughtException, true); } [Test] public void DateAdd_DateInterval_1() { if (Helper.OnMono) Assert.Ignore ("Buggy Mono: #81783"); Assert.AreEqual(DateTime.Parse("12/7/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Day, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/7/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.DayOfYear, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 02:00:00"),DateAndTime.DateAdd(DateInterval.Hour, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:02:00"),DateAndTime.DateAdd(DateInterval.Minute, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("2/5/2004 00:00:00"),DateAndTime.DateAdd(DateInterval.Month, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("6/5/2004 00:00:00"),DateAndTime.DateAdd(DateInterval.Quarter, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:02"),DateAndTime.DateAdd(DateInterval.Second, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/7/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Weekday, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/19/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.WeekOfYear, 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2005 00:00:00"),DateAndTime.DateAdd(DateInterval.Year, 2, DateTime.Parse("12/5/03"))); } [Test] public void DateAdd_String_1() { if (Helper.OnMono) Assert.Ignore ("Buggy Mono: #81783"); Assert.AreEqual(DateTime.Parse("12/7/2003 00:00:00"),DateAndTime.DateAdd("d", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/7/2003 00:00:00"),DateAndTime.DateAdd("y", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 02:00:00"),DateAndTime.DateAdd("h", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:02:00"),DateAndTime.DateAdd("n", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("2/5/2004 00:00:00"),DateAndTime.DateAdd("m", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("6/5/2004 00:00:00"),DateAndTime.DateAdd("q", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2003 00:00:02"),DateAndTime.DateAdd("s", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/7/2003 00:00:00"),DateAndTime.DateAdd("w", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/19/2003 00:00:00"),DateAndTime.DateAdd("ww", 2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2005 00:00:00"),DateAndTime.DateAdd("yyyy", 2, DateTime.Parse("12/5/03"))); } [Test] public void DateAdd_DateInterval_2() { Assert.AreEqual(DateTime.Parse("12/3/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Day, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/3/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.DayOfYear, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/4/2003 22:00:00"),DateAndTime.DateAdd(DateInterval.Hour, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/4/2003 23:58:00"),DateAndTime.DateAdd(DateInterval.Minute, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("10/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Month, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("6/5/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Quarter, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/4/2003 23:59:58"),DateAndTime.DateAdd(DateInterval.Second, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/3/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.Weekday, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("11/21/2003 00:00:00"),DateAndTime.DateAdd(DateInterval.WeekOfYear, -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/5/2001 00:00:00"),DateAndTime.DateAdd(DateInterval.Year, -2, DateTime.Parse("12/5/03"))); } [Test] public void DateAdd_String_2() { Assert.AreEqual(DateTime.Parse("12/3/2003 00:00:00"),DateAndTime.DateAdd("d", -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/3/2003 00:00:00"),DateAndTime.DateAdd("y", -2, DateTime.Parse("12/5/03"))); Assert.AreEqual(DateTime.Parse("12/4/2003 22:00:00"),DateAndTime.DateAdd("h", -2, DateTime.Parse("12/5/03")));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -