4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
||||||
1 | ||||||
Неверно сравнивает даты функция CompareDateTime01.02.2017, 21:00. Показов 1419. Ответов 5
Метки нет (Все метки)
01.02.2017 22:41:29 01.02.2017 22:42:12 01.02.2017 22:42:26 01.02.2017 22:40:09 Почему???
0
|
01.02.2017, 21:00 | |
Ответы с готовыми решениями:
5
Триггер сравнивает две даты Создать метод, который сравнивает две даты Работа со строками. : Создать метод, который сравнивает две даты, переданные в строковой переменной Неверно распознается формат даты |
500 / 356 / 231
Регистрация: 29.03.2015
Сообщений: 675
|
||||||
01.02.2017, 21:19 | 3 | |||||
У меня Ваша функция отсортировала в обратном порядке правильно.
Код:
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
|
01.02.2017, 21:55 [ТС] | 4 |
А у Вас какие строки в Memo1.Lines ?
Я получал каждый раз строку с помощью DateTimeToString(sDate, 'dd.mm.yyyy hh:nn:ss', Now) И после добавления новой строки в строковый список - сортировал его с помощью CompareDateTime И почему то сортировка была с ошибками, как я привёл в примере в своём первом сообщении. Тогда я решил кстати переставить местами день и год, и отсортировать список с помощью AnsiCompareText, которая не ошибается)) Но получил фигу - так как в календаре Windows стоит формат, где год НЕ на первом месте, то DecodeDate (и другие кстати тоже, типа FormatDateTime) - стали выдавать ошибку "...not valid date and time". Перестанавливаю формат в календаре системы - начинают работать... Что за чепуха думаю? А если на компе пользователя по другому выставлено будет - функции работающие с датой у меня выходит начнут ошибку выдавать? Как избавиться от зависимости этой - тоже вот для меня вопрос, который пока не могу понять... Добавлено через 12 минут Простите, я ошибся: не FormatDateTime выдаёт ошибку, а функции перевода строки, в которой год на первом месте, такие как StrToDateTime, DateTimeToString. И вот зависимость этих функций от установок календаря Windows и создаёт сложность.
0
|
500 / 356 / 231
Регистрация: 29.03.2015
Сообщений: 675
|
|
01.02.2017, 22:12 | 5 |
У меня в поле Memo1.Lines строки:
01.02.2017 22:41:29 01.02.2017 22:42:12 01.02.2017 22:42:26 01.02.2017 22:40:09 После сортировки они выводятся в порядке убывания времени. Но как я вижу Вы уже разобрались.
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
||||||
01.02.2017, 22:56 [ТС] | 6 | |||||
C зависимостью StrToDateTime и DateTimeToString от Windows - да, похоже разобрался...
Вот такой код заставляет их работать:
Добавлено через 19 минут ... пока что то менял и переставлял в коде - заработала правильно и сортировка) но жаль что не смог понять почему неправильно работала до этого...
0
|
01.02.2017, 22:56 | |
01.02.2017, 22:56 | |
Помогаю со студенческими работами здесь
6
Какая функция сравнивает строку s2 со строкой s1? Функция которая сравнивает текущую дату с заданной Функция неправильно сравнивает содержимое файла и элемента структуры Функция сравнивает две строки, игнорируя различия в регистрах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |