public void WeeekOfYearIsoTest() { DateTime moment = new DateTime(2007, 12, 31); CultureTestData cultures = new CultureTestData(); foreach (CultureInfo culture in cultures) { if (culture.DateTimeFormat.CalendarWeekRule != CalendarWeekRule.FirstFourDayWeek || culture.DateTimeFormat.FirstDayOfWeek != DayOfWeek.Monday) { continue; } int year; int weekOfYear; TimeTool.GetWeekOfYear(moment, culture, YearWeekType.Iso8601, out year, out weekOfYear); Assert.Equal(1, weekOfYear); } } // WeeekOfYearIsoTest
public void CurrentMonthTest() { DateTime now = ClockProxy.Clock.Now; CultureTestData cultures = new CultureTestData(); foreach (CultureInfo culture in cultures) { DateTime currentYearMonthStart = new DateTime(now.Year, now.Month, 1); DateTime currentYearMonthEnd = currentYearMonthStart.AddDays(culture.Calendar.GetDaysInMonth(currentYearMonthStart.Year, currentYearMonthStart.Month)); Month month = new Month(currentYearMonthStart, TimeCalendar.New(culture, TimeSpan.Zero, TimeSpan.Zero)); Assert.Equal <int>(month.Year, now.Year); Assert.Equal(month.YearMonth, (YearMonth)now.Month); Assert.Equal <DateTime>(month.Start, currentYearMonthStart); Assert.Equal <DateTime>(month.End, currentYearMonthEnd); } } // CurrentMonthTest
public void AddMonthsTest() { DateTime now = ClockProxy.Clock.Now; CultureTestData cultures = new CultureTestData(); foreach (CultureInfo culture in cultures) { DateTime currentYearMonthStart = new DateTime(now.Year, now.Month, 1); DateTime currentYearMonthEnd = currentYearMonthStart.AddDays(culture.Calendar.GetDaysInMonth(currentYearMonthStart.Year, currentYearMonthStart.Month)); Month currentYearMonth = new Month(currentYearMonthStart, TimeCalendar.New(culture, TimeSpan.Zero, TimeSpan.Zero)); Assert.Equal <DateTime>(currentYearMonth.Start, currentYearMonthStart); Assert.Equal <DateTime>(currentYearMonth.End, currentYearMonthEnd); Assert.Equal(currentYearMonth.AddMonths(0), currentYearMonth); DateTime previousYearMonthStart = new DateTime(now.Year - 1, now.Month, 1); DateTime previousYearMonthEnd = previousYearMonthStart.AddDays(culture.Calendar.GetDaysInMonth(previousYearMonthStart.Year, previousYearMonthStart.Month)); Month previousYearMonth = currentYearMonth.AddMonths(TimeSpec.MonthsPerYear * -1); Assert.Equal <DateTime>(previousYearMonth.Start, previousYearMonthStart); Assert.Equal <DateTime>(previousYearMonth.End, previousYearMonthEnd); Assert.Equal(previousYearMonth.YearMonth, currentYearMonth.YearMonth); Assert.Equal(previousYearMonth.Start.Year, currentYearMonth.Start.Year - 1); Assert.Equal(previousYearMonth.End.Year, currentYearMonth.End.Year - 1); DateTime nextYearMonthStart = new DateTime(now.Year + 1, now.Month, 1); DateTime nextYearMonthEnd = nextYearMonthStart.AddDays(culture.Calendar.GetDaysInMonth(nextYearMonthStart.Year, nextYearMonthStart.Month)); Month nextYearMonth = currentYearMonth.AddMonths(TimeSpec.MonthsPerYear); Assert.Equal <DateTime>(nextYearMonth.Start, nextYearMonthStart); Assert.Equal <DateTime>(nextYearMonth.End, nextYearMonthEnd); Assert.Equal(nextYearMonth.YearMonth, currentYearMonth.YearMonth); Assert.Equal(nextYearMonth.Start.Year, currentYearMonth.Start.Year + 1); Assert.Equal(nextYearMonth.End.Year, currentYearMonth.End.Year + 1); } } // AddMonthsTest
public void DefaultCalendarTest() { const int startWeek = 1; int currentYear = ClockProxy.Clock.Now.Year; CultureTestData cultures = new CultureTestData(); foreach (CultureInfo culture in cultures) { foreach (YearWeekType yearWeekType in Enum.GetValues(typeof(YearWeekType))) { int weeksOfYear = TimeTool.GetWeeksOfYear(currentYear, culture, yearWeekType); for (int weekOfYear = startWeek; weekOfYear < weeksOfYear; weekOfYear++) { Week week = new Week(currentYear, weekOfYear, TimeCalendar.New(culture, YearMonth.January, yearWeekType)); Assert.Equal <int>(week.Year, currentYear); DateTime weekStart = TimeTool.GetStartOfYearWeek(currentYear, weekOfYear, culture, yearWeekType); DateTime weekEnd = weekStart.AddDays(TimeSpec.DaysPerWeek); Assert.Equal <DateTime>(week.Start, weekStart.Add(week.Calendar.StartOffset)); Assert.Equal <DateTime>(week.End, weekEnd.Add(week.Calendar.EndOffset)); } } } } // DefaultCalendarTest