Вычислить количество месяцев в интервале двух дат - C#
Формулировка задачи:
Всем привет! Возник вот такой вопрос: как сделать чтоб при выборе одной даты с dateTimePicker1 а потом второй с dateTimePicker2 в textbox мне показало количество месацей между датами (допустим я выбрал 1,01,2012 а потом 1,02,2013 и мне показало 23)! Спасибо!
Решение задачи: «Вычислить количество месяцев в интервале двух дат»
textual
Листинг программы
/// <summary> /// Вычисление точного количества месяцев между датами. /// <para>Время не учитывается.</para> /// <para>Конечная дата должна быть больше или равна начальной.</para> /// </summary> /// <param name="startDate">Начальная дата периода</param> /// <param name="endDate">Конечная дата периода</param> /// <returns>Количество месяцев</returns> public static int TotalMonths(DateTime startDate, DateTime endDate) { DateTime dt1 = startDate.Date, dt2 = endDate.Date; if (dt1 > dt2) throw new ArgumentException("Начальная дата не может быть больше конечной"); if (dt1 == dt2) return 0; var m = ((dt2.Year - dt1.Year) * 12) + dt2.Month - dt1.Month + (dt2.Day >= dt1.Day - 1 ? 0 : -1)//поправка на числа + ((dt1.Day == 1 && DateTime.DaysInMonth(dt2.Year, dt2.Month) == dt2.Day) ? 1 : 0);//если начальная дата - 1-е число меяца, а конечная - последнее число, добавляется 1 месяц return m; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д