Вычислить количество месяцев в интервале двух дат - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! Возник вот такой вопрос: как сделать чтоб при выборе одной даты с dateTimePicker1 а потом второй с dateTimePicker2 в textbox мне показало количество месацей между датами (допустим я выбрал 1,01,2012 а потом 1,02,2013 и мне показало 23)! Спасибо!

Решение задачи: «Вычислить количество месяцев в интервале двух дат»

textual
Листинг программы
  1.         /// <summary>
  2.         /// Вычисление точного количества месяцев между датами.
  3.         /// <para>Время не учитывается.</para>
  4.         /// <para>Конечная дата должна быть больше или равна начальной.</para>
  5.         /// </summary>
  6.         /// <param name="startDate">Начальная дата периода</param>
  7.         /// <param name="endDate">Конечная дата периода</param>
  8.         /// <returns>Количество месяцев</returns>
  9.         public static int TotalMonths(DateTime startDate, DateTime endDate)
  10.         {
  11.             DateTime dt1 = startDate.Date, dt2 = endDate.Date;
  12.             if (dt1 > dt2) throw new ArgumentException("Начальная дата не может быть больше конечной");
  13.             if (dt1 == dt2) return 0;
  14.            
  15.             var m = ((dt2.Year - dt1.Year) * 12)
  16.                 + dt2.Month - dt1.Month
  17.                 + (dt2.Day >= dt1.Day - 1 ? 0 : -1)//поправка на числа
  18.                 + ((dt1.Day == 1 && DateTime.DaysInMonth(dt2.Year, dt2.Month) == dt2.Day) ? 1 : 0);//если начальная дата - 1-е число меяца, а конечная - последнее число, добавляется 1 месяц
  19.             return m;
  20.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы