private static CalendarMonth TweakBy( this CalendarMonth calendarMonth, int amount, CalendarMonthComponent componentToTweak) { if (componentToTweak == CalendarMonthComponent.Month) { var referenceMonth = new DateTime(calendarMonth.Year, (int)calendarMonth.MonthOfYear, 1); var updatedMonth = referenceMonth.AddMonths(amount); var result = new CalendarMonth(updatedMonth.Year, (MonthOfYear)updatedMonth.Month); return(result); } if (componentToTweak == CalendarMonthComponent.Year) { var result = new CalendarMonth(calendarMonth.Year + amount, calendarMonth.MonthOfYear); return(result); } throw new NotSupportedException("this calendar month component is not supported: " + componentToTweak); }
private static CalendarMonth TweakComponentOfCalendarMonth(this CalendarMonth calendarMonth, CalendarMonthComponent componentToTweak) { if (componentToTweak == CalendarMonthComponent.Month) { var tweakedMonth = A.Dummy <MonthOfYear>().ThatIsNot(calendarMonth.MonthOfYear); var result = new CalendarMonth(calendarMonth.Year, tweakedMonth); return(result); } if (componentToTweak == CalendarMonthComponent.Year) { var tweakedYear = A.Dummy <PositiveInteger>().ThatIs(y => y != calendarMonth.Year && y <= 9999); var result = new CalendarMonth(tweakedYear, calendarMonth.MonthOfYear); return(result); } throw new NotSupportedException("this calendar month component is not supported: " + componentToTweak); }