Разность между датами в виде ГГ-ММ-ДД - C#

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

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

Конкретная задача - расчет стажа, без погрешности, с учетом високосных годов и разной длительности месяцев, поэтому тупое деление на 365 для года и на 30 для месяца - не вариант. Единственное что пришло в голову:
            int y = 0;
            int m = 0;
            int d = 0;
            DateTime a = new DateTime(2015, 2, 11);//дата начала
            DateTime b = new DateTime(2015, 5, 1);//дата окончания
 
            while (a <= b)
             {m++;
                 a = a.AddMonths(1);
             }
            
             a = a.AddMonths(-1);
             while (a <= b)
             {
                 d++;
                 a = a.AddDays(1);
             }
             m--;
             y=m/12;
             m %= 12;
             d--;
            
             label1.Text = y+"-"+m+"-"+d+"\r\n";
может есть более изящное решение?

Решение задачи: «Разность между датами в виде ГГ-ММ-ДД»

textual
Листинг программы
            using Itenso.TimePeriod;
            DateDiff dateDiff = new DateDiff(a1, b1);
            label1.Text += dateDiff.GetDescription(4).ToString();

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


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

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

9   голосов , оценка 4.111 из 5
Похожие ответы