private void FixMonthYear(ref int year, ref int month) { if (year > maxYear || year < minYear) { throw new Exception("مقدار سال نا معتبر است"); } int maxMonth = DateCalendar.GetMonthsInYear(year); if (month < 1 || month > maxMonth) { if (month < 1) { while (month < 1) { year--; maxMonth = DateCalendar.GetMonthsInYear(year); month += maxMonth; } } else { while (month > maxMonth) { year++; maxMonth = DateCalendar.GetMonthsInYear(year); month -= maxMonth; } } } if (year > maxYear || year < minYear) { throw new Exception("مقادیر سال و ماه نامعتبر است"); } }