![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование времени [D7, WinXP]
Ученик © (2004-11-17 15:08:00)Уважаемые мастера, не подскажете ли, как можно преобразовать время, представленное в формате (для примера: 946972800, 1098547200, ...), в нормальное представление???
Шеф дал указание разобраться с представлением данных в таблице, формируемой Info Matic'ом... "просит" срочно :(
Rocket (2004-11-19 15:18:00) [1]ОК, совершенно без проблем.
И ещё я только сейчас понял, что могу задать в этом формате практически любые дату и время (с точностью до секунды). Осталось только добраться домой :)
Anatoly Podgoretsky (2004-11-19 15:07:00) [2]Что надо сказано выше, не два значения, а по крайней мере три и желательно с интевалами в одну секунду, в одну минуту
Rocket (2004-11-19 14:01:00) [3]Говорите, что надо. Предоставлю всё.
Смогу сделать это после 20:00 по Москве (как домой приду).
Anatoly Podgoretsky (2004-11-19 13:57:00) [4]А может проще, может ты недостаточно данных представил для анализа, как думаешь можно точно определить формат имея только два значения?
Rocket (2004-11-19 13:54:00) [5]Надо основываться на том, что после преобразования по предпологаемому методу число 1416413536 + какая-то дата должно равняться примерно 23:22 17.11.2004.
Вот я уже и начинаю думать, что куда переставлять. Может там вообще в биты смотреть надо?
Anatoly Podgoretsky (2004-11-19 13:48:00) [6]Rocket © (18.11.04 11:07) [32]
Такое не ислючено, что для целей задачи достаточно только младшей части. Анализ показывает, что единица измерения 100 нс.
Rocket (2004-11-19 13:23:00) [7]Удалено модератором
Примечание: Создание пустых сообщений
Rocket (2004-11-18 11:45:00) [8]Получается совсем не то.
При таких расчётах 1416413536 ~ 142 секунды :)
Это с чего отсчитывать?
begin...end (2004-11-18 11:38:00) [9]
> [27] begin...end © (18.11.04 10:04)
Блин, чего-то со мной сегодня не то; вроде и не пил; я опять ошибся, спасибо [28] Anatoly Podgoretsky © (18.11.04 10:47), не в одной единице 10 микросекунд, а в 10 единицах 1 микросекунда; тогда в одной единице будет 0,1 мкс = 100 нс.
Rocket (2004-11-18 11:07:00) [10]
> app © (18.11.04 10:52) [30]
> И вообще не красиво задавать свои вопросы в чужой ветке
> и как оказалось совсем про другое, заведи свою.
Почему про другое?! Тема "Преобразование времени". Что не так?
> Anatoly Podgoretsky © (18.11.04 10:51) [29]
> Rocket © (17.11.04 21:32) [20]
> Ищи еще 4 байта, они сразу за этими.
Нифига, запись находится в реестре, значение DWORD. И всё!
Rocket (2004-11-18 10:54:00) [11]А причём здесь QyeryPerformanceCounter?
Не понял. Прикол в том, что в этом Integer хранится дата+время.
Как такое возможно при том, что 598160112 ~ 10 мкс?
Всё же будет повторяться через какое-то (не большое) время.
Как они дату различают?
Timestamp всегда определяется правильно. Уже полгода :)
app (2004-11-18 10:52:00) [12]И вообще не красиво задавать свои вопросы в чужой ветке и как оказалось совсем про другое, заведи свою.
Anatoly Podgoretsky (2004-11-18 10:51:00) [13]Rocket © (17.11.04 21:32) [20]
Ищи еще 4 байта, они сразу за этими.
Anatoly Podgoretsky (2004-11-18 10:47:00) [14]Только не микросекунда, а 100 нс, а это уже системный интервал, например QyeryPerformanceCounter.
begin...end (2004-11-18 10:04:00) [15]
> [26] Rocket © (18.11.04 09:51)
Я ошибся, это так: 598160112 / 60 / 1000000 = 9,9693352 ~ 10 мкс.
Тогда точка отсчёта - это 23:22 17.11.2004 минус 236 минут :)
Rocket (2004-11-18 09:51:00) [16]
> Ну если 598160112 - это примерно 1 минута, то 1 - это 1
> микросекунда :-)))
Это как? 58,816,011,2? :) И потом - в этих 4 байтах вкключено ВСЁ (и дата и время). Так что, думаю, здесь что-то послежнее. Вот только что?
begin...end (2004-11-18 09:09:00) [17]
> [20] Rocket © (17.11.04 21:32)
Ну если 598160112 - это примерно 1 минута, то 1 - это 1 микросекунда :-)))
Rocket (2004-11-18 08:56:00) [18]Так по поводу моего вопроса догадки есть?
Ученик (2004-11-18 08:20:00) [19]Кстати, а как можно перевести переменную типа TDateTime в строку. Т.е. указываем дату 10.10.04, а получаем что-то вроде 123456?
Ученик (2004-11-18 08:04:00) [20]Огромное спасибо всем за помощь, особенно Digitman и begin...end, его алгоритм [14] очень помог, с исправлением на DateTimeToStr.