Это решено НЕ нейтральный для языка вопрос. Например, Java, Javasript и каждая реализация SQL, которую я когда-либо использовал, имеют функции сравнения даты / времени, которые работают просто отлично. Если используемый вами язык или платформа этого не делают, вам нужно будет сообщить нам, кто они такие, чтобы кто-то мог сказать вам, какой правильный вызов функции использовать или как обойти какую-то особенность. Да, многие языки имеют тип данных дата / время, но это не делает язык вопроса нейтральным. У большинства языков есть способ вывода текста на экран, но это не дает права спрашивать: «Как записать текстовую строку на экран нейтральным языком?» На такой вопрос ответа нет.
Понятия не имею, что вы имеете в виду под «сравнением только последним сравнением». Опять же, вы, очевидно, имеете в виду поведение определенной функции сравнения на каком-то конкретном языке. Вы должны быть более конкретны, чтобы получить значимый ответ.
Изменить в ответ на ваш комментарий: разные языки имеют разные способы хранения дат. В Java, чтобы увидеть, если одна дата / время идут за другой, вы пишете «date1.after (date2)» или «date1.compareTo (date2)> 0». В Postgres SQL вы пишете «date1> date2» или «date1 :: timestamp> date2 :: timestamp» в зависимости от определения типа. В C существует множество «правильных» способов, включая «difftime (date1, date2)». И т. Д.
Ответ Аарона выше логически правильный, но не имеет отношения к тому, как вы на самом деле сравниваете даты на любом языке, который я использую. Если бы у вас были даты, хранящиеся в виде набора целых чисел для каждого из этих компонентов (год, месяц, день и т. Д.), Убедитесь, что это сработает. Но я не знаю ни одного языка, который бы таким образом сохранял даты.
Если у вас есть причины иметь свой собственный формат для хранения дат и разбивать их на такие компоненты, как это полезно для вашего приложения, тогда я полагаю, что метод Аарона верен. Но вряд ли это полезный формат. Внутренне Java хранит дату / время в виде количества миллисекунд с полуночи, 1 января 1970 года. C использует количество секунд. Я уверен, что другие языки используют другие схемы.
Конечно, вы можете написать независимый от языка псевдокод для сравнения двух дат, точно так же, как вы можете написать независимый от языка псевдокод для описания записи на экран. Если ваша цель состоит в том, чтобы абстрагироваться от технических деталей языка, пока вы работаете над более серьезной проблемой, это прекрасно. Но если ваша цель состоит в том, чтобы на самом деле сравнить две даты и выяснить, какая из них позже или сколько дней между ними, тогда ответ заключается в технических деталях того, как конкретный язык, который вы используете, хранит и манипулирует датами.