Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преобразование времени [D7, WinXP]


Страницы:   1 2 3

Ученик ©   (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.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо