Пример #1
0
        private static CalendarDay TweakBy(
            this CalendarDay calendarDay,
            int amount,
            CalendarDayComponent componentToTweak)
        {
            if (componentToTweak == CalendarDayComponent.Day)
            {
                var updatedDateTime = calendarDay.ToDateTime().AddDays(amount);

                var result = new CalendarDay(updatedDateTime.Year, (MonthOfYear)updatedDateTime.Month, (DayOfMonth)updatedDateTime.Day);

                return(result);
            }

            if (componentToTweak == CalendarDayComponent.Month)
            {
                var updatedDateTime = calendarDay.ToDateTime().AddMonths(amount);

                var result = new CalendarDay(updatedDateTime.Year, (MonthOfYear)updatedDateTime.Month, (DayOfMonth)updatedDateTime.Day);

                return(result);
            }

            if (componentToTweak == CalendarDayComponent.Year)
            {
                var updatedDateTime = calendarDay.ToDateTime().AddYears(amount);

                var result = new CalendarDay(updatedDateTime.Year, (MonthOfYear)updatedDateTime.Month, (DayOfMonth)updatedDateTime.Day);

                return(result);
            }

            throw new NotSupportedException("this calendar day component is not supported: " + componentToTweak);
        }
Пример #2
0
        private static CalendarDay Tweak(
            this CalendarDay calendarDay,
            CalendarDayComponent componentToTweak)
        {
            if (componentToTweak == CalendarDayComponent.Day)
            {
                var tweakedDay = A.Dummy <DayOfMonth>().ThatIs(
                    d =>
                    d != calendarDay.DayOfMonth &&
                    DoesNotThrow(() => new CalendarDay(calendarDay.Year, calendarDay.MonthOfYear, d)));
                var result = new CalendarDay(calendarDay.Year, calendarDay.MonthOfYear, tweakedDay);
                return(result);
            }

            if (componentToTweak == CalendarDayComponent.Month)
            {
                var tweakedMonth = A.Dummy <MonthOfYear>().ThatIs(
                    m =>
                    m != calendarDay.MonthOfYear &&
                    DoesNotThrow(() => new CalendarDay(calendarDay.Year, m, calendarDay.DayOfMonth)));
                var result = new CalendarDay(calendarDay.Year, tweakedMonth, calendarDay.DayOfMonth);
                return(result);
            }

            if (componentToTweak == CalendarDayComponent.Year)
            {
                var tweakedYear = A.Dummy <PositiveInteger>().ThatIs(
                    y =>
                    y != calendarDay.Year &&
                    y <= 9999 &&
                    DoesNotThrow(() => new CalendarDay(y, calendarDay.MonthOfYear, calendarDay.DayOfMonth)));
                var result = new CalendarDay(tweakedYear, calendarDay.MonthOfYear, calendarDay.DayOfMonth);
                return(result);
            }

            throw new NotSupportedException("this calendar day component is not supported: " + componentToTweak);
        }