Алгоритм? F75491E368 => 02:38

Статус
В этой теме нельзя размещать новые ответы.

Counters

Постоялец
Регистрация
7 Сен 2006
Сообщения
82
Реакции
11
Помогите пожалуйста найти функцию или алгоритм преобразования строки в дату (либо во время)
Для примера:
F75491E368 => 02:38
F756A9C66C => 00:02
F75491E4EB => 02:40
Исходные значения содержаться в фаербёрд интербазе.
 
явно не таймстемп 32 битный, а помимо времени даты нет?
 
Вообщем то если убрать букву F то получаеться НЕХ цифра
итого имеем:
75491E368 => 75491 # 02:38
756A9C66C => 756 # 00:02
75491E4EB => 75491 # 02:40

Однако у меня не выходит сопоставить это со временем которому предположительно равны данные значения.
 
Откуда взялось предположительное время? 02:38 - это что? часы:минуты или минуты:секунды?

F75491E368 => 02:38
F75491E4EB => 02:40

Допустим, время задано в часах:минутах.
Тогда разница во времени примерно от чуть больше одной минуты до почти 3 минут (примерно потому, что секунды могут быть просто отброшены:( например 02:38:00-02:40:59
итого разница может составить от 61 секунды до 179 секунд.

0xF75491E4EB-0xF75491E368=0x183=387

387 секунд, это примерно 6 с половиной минут. Никак не клеется с диапазоном от 61 до 179 секунд.

если
Исходные значения содержаться в фаербёрд интербазе
то, может быть, вам попытаться определить тип поля, в котором данные лежат?
 
Тип поля CHAR
Вы всё правильно предположили это часы и минуты.
Однако допустим я мог ошибиться с предполагаемыми значениями.
Можете назвать чему могут быть равны эти циферки в минутах?
F75491E368
F756A9C66C
F75491E4EB
А то я что то запутался немного... :confused:
 
нужна инфомация, необязательно непосредственно касающаяся данных. Что за база, что у нее внутри, к какому периоду может относиться, есть ли вывод на экран из программы и т.п. Тогда могут появиться идеи. А если в лоб раскодировать, то так:

PHP:
$x = date('Y-m-d H:i:s', 0xF75491E368/1000);
echo "x=$x\n";
$x = date('Y-m-d H:i:s', 0xF756A9C66C/1000);
echo "x=$x\n";
$x = date('Y-m-d H:i:s', 0xF75491E4EB/1000);
echo "x=$x\n";

Результат вывода:
Код:
x=2003-08-31 00:36:09
x=2003-08-31 10:21:29
x=2003-08-31 00:36:09

но оснований никаких, что это именно те даты.
Я предположил, что данные хранят количество миллисекунд с 1.1.1970

В кодировке разобрался. Здесь закодировано время в часах:минутах. В 5 байтах кода (например, F75491E368), закодировано 5 байт
текстового представления времени: 02:38
Время 00:00 кодируется как F756A9C66E. Чтобы получить время 00:00, выполняем F756A9C66E xor C76693F65E.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху