Сравнение дат - 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);