2014-02-13 2 views
0

Я хочу сравнить datetime в C. Я искал googled, но я не получил никакого правильного решения. У меня есть datetime в строчном формате i.e date1 = "2014-02-13 12:22:21" и date2 = "2014-02-10 12:22:21". Теперь я хочу сравнить b/w date1 и date2. Пожалуйста, предложите мне правильное решение.Сравнение даты и времени в C

+0

SScanf() .. ...? –

+0

@ AishvaryaKarthik, это C#. – Jeyaram

+0

Возможный дубликат по [Сравнение дат, чтобы найти, что больше в C] (http://stackoverflow.com/questions/5283120/date-comparison-to-find-which-is-bigger-in-c) – jww

ответ

4

Просто используйте strcmp. Он работает, потому что с этим конкретным форматом даты/времени лексикографический порядок совпадает с хронологическим порядком.

+0

благодаря всем для быстрого ответа. – Sidd

0

Если вы не запускаете это на критическом пути, тогда просто используйте strncmp(). Иначе, если скорость важна, проанализируйте ее с strptime() + mktime() в UTC uint64_t микросекунд/миллисекунды с эпохи и сравните их. Я также хотел бы убедиться, что временные интервалы учитываются последовательно на базе кода.

Чтобы уточнить точку, поднятую в комментарии - следует ли предпочесть сравнение строк с сопоставлением времени (вычисление служебных данных синтаксического анализа), определяется только шаблоном использования и может быть проведено в простейшем синтетическом тесте.

+1

Сравнение может быть быстрее, но все же быстрее, если подсчитать накладные расходы на вызов 'strptime'? –

+0

Я предполагаю, что все тестируется перед использованием, так как это шаблон использования, который определяет, стоит ли оплачивать накладные расходы или нет, в соответствии с лучшими практиками динамического программирования – bobah

Смежные вопросы