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.AreEqual(weekOfYear, 1);
            }
        }         // WeeekOfYearIsoTest
Esempio n. 2
0
        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(month.Year, now.Year);
                Assert.Equal(month.YearMonth, (YearMonth)now.Month);
                Assert.Equal(month.Start, currentYearMonthStart);
                Assert.Equal(month.End, currentYearMonthEnd);
            }
        }         // CurrentMonthTest
Esempio n. 3
0
        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(currentYearMonth.Start, currentYearMonthStart);
                Assert.Equal(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(previousYearMonth.Start, previousYearMonthStart);
                Assert.Equal(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(nextYearMonth.Start, nextYearMonthStart);
                Assert.Equal(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
Esempio n. 4
0
        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.AreEqual(week.Year, currentYear);

                        DateTime weekStart = TimeTool.GetStartOfYearWeek(currentYear, weekOfYear, culture, yearWeekType);
                        DateTime weekEnd   = weekStart.AddDays(TimeSpec.DaysPerWeek);
                        Assert.AreEqual(week.Start, weekStart.Add(week.Calendar.StartOffset));
                        Assert.AreEqual(week.End, weekEnd.Add(week.Calendar.EndOffset));
                    }
                }
            }
        }         // DefaultCalendarTest