Сравнение дат - C# (179378)

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

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

Здравствуйте. Мне нужно получить разницу между датами, получаю я ее таким методом:
        public void Compare(Airplane a1, Airplane a2)
        {
            if (airplanesArray == null)
                throw new Exception("Нет самолетов!");
 
            if (a1.DepartureTime > a2.DepartureTime)
            {
                int dYear = a1.DepartureTime.Year - a2.DepartureTime.Year;
                int dMonth = a1.DepartureTime.Month - a2.DepartureTime.Month;
                int dDay = a1.DepartureTime.Day - a2.DepartureTime.Day;
                int dHour = a1.DepartureTime.Hour - a2.DepartureTime.Hour;
                int dMin = a1.DepartureTime.Minute - a2.DepartureTime.Minute;
                int dSecond = a1.DepartureTime.Second - a2.DepartureTime.Second;
 
                Console.WriteLine("Разница между рейсом номер {0} и {1}: годы: {2}, месяца: {3}, дни: {4}, часы: {5}, минуты: {6}, секунды: {7}",
                    a1.RaceNumber, a2.RaceNumber, dYear, dMonth, dDay, dHour, dMin, dSecond);
            }
 
            if (a1.DepartureTime < a2.DepartureTime)
            {
                int dYear = a2.DepartureTime.Year - a1.DepartureTime.Year;
                int dMonth = a2.DepartureTime.Month - a1.DepartureTime.Month;
                int dDay = a2.DepartureTime.Day - a1.DepartureTime.Day;
                int dHour = a2.DepartureTime.Hour - a1.DepartureTime.Hour;
                int dMin = a2.DepartureTime.Minute - a1.DepartureTime.Minute;
                int dSecond = a2.DepartureTime.Second - a1.DepartureTime.Second;
 
                Console.WriteLine("Разница между рейсом номер {0} и {1}: годы: {2}, месяца: {3}, дни: {4}, часы: {5}, минуты: {6}, секунды: {7}",
                    a1.RaceNumber, a2.RaceNumber, dYear, dMonth, dDay, dHour, dMin, dSecond);
            }
        }
Возможно, изобрел велосипед. Возможно ли как-то минимизировать код сравнения?

Решение задачи: «Сравнение дат»

textual
Листинг программы
var dtnow = new DateTime(2017, 1, 2);
var dt = new DateTime(2017, 1, 1);
var diff = new DateTime((dtnow - dt).Ticks);
Console.WriteLine($"{diff.Year} {diff.Month} и тд"); // 1 год 1 месяц и т.д.
Console.ReadKey(true);

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


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

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

12   голосов , оценка 4.417 из 5