public AddMonths ( System.DateTime time, int months ) : System.DateTime | ||
time | System.DateTime | |
months | int | |
Résultat | System.DateTime |
private void VerificationHelper(DateTime value, int addValue) { System.Globalization.Calendar tc = new TaiwanCalendar(); DateTime newDate = tc.AddMonths(value, addValue); int totalYear = addValue / 12; int leftMonth = addValue % 12; int day = value.Day; int month = value.Month + leftMonth; int year = value.Year + totalYear; if (month > 12) { month = month % 12; year++; } if (month < 1) { year--; month = 12 + month; } int dayInMonth = 0; if (IsLeapYear(year)) { dayInMonth = _DAYS_PER_MONTHS_IN_LEAP_YEAR[month]; } else { dayInMonth = _DAYS_PER_MONTHS_IN_NO_LEAP_YEAR[month]; } day = day > dayInMonth ? dayInMonth : day; DateTime desiredDate = new DateTime(year, month, day, value.Hour, value.Minute, value.Second, value.Millisecond); Assert.Equal(desiredDate.Year, newDate.Year); Assert.Equal(desiredDate.Month, newDate.Month); Assert.Equal(desiredDate.Day, newDate.Day); Assert.Equal(desiredDate.Hour, newDate.Hour); Assert.Equal(desiredDate.Minute, newDate.Minute); Assert.Equal(desiredDate.Second, newDate.Second); Assert.Equal(desiredDate.Millisecond, newDate.Millisecond); }
public void NegTest2() { System.Globalization.Calendar tc = new TaiwanCalendar(); DateTime dt = tc.MinSupportedDateTime; int addValue = _generator.GetInt32(-55); addValue = -addValue; Assert.Throws<ArgumentOutOfRangeException>(() => { tc.AddMonths(dt, addValue); }); }
public void NegTest4() { System.Globalization.Calendar tc = new TaiwanCalendar(); Random rand = new Random(-55); int year = rand.Next(tc.MinSupportedDateTime.Year, tc.MaxSupportedDateTime.Year - 1911); int month = rand.Next(1, 12); int day; if (tc.IsLeapYear(year)) { day = rand.Next(1, _DAYS_PER_MONTHS_IN_LEAP_YEAR[month] + 1); } else { day = rand.Next(1, _DAYS_PER_MONTHS_IN_NO_LEAP_YEAR[month] + 1); } DateTime dt = new DateTime(year, month, day); int addValue = rand.Next(120000, Int32.MaxValue); Assert.Throws<ArgumentOutOfRangeException>(() => { tc.AddMonths(dt, addValue); }); }
public void NegTest2() { System.Globalization.Calendar tc = new TaiwanCalendar(); Random rand = new Random(-55); int year = rand.Next(tc.MinSupportedDateTime.Year, tc.MaxSupportedDateTime.Year - 1911); int month = rand.Next(1, 12); int day; if (tc.IsLeapYear(year)) { day = rand.Next(1, 30); } else { day = rand.Next(1, 29); } DateTime dt = tc.ToDateTime(year, month, day, 0, 0, 0, 0); int addValue = rand.Next(Int32.MinValue, (tc.MinSupportedDateTime.Year - year) * 12); Assert.Throws<ArgumentOutOfRangeException>(() => { tc.AddMonths(dt, addValue); }); }