Russian Qt Forum
Ноябрь 24, 2024, 12:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: FILETIME (Win) и Linux  (Прочитано 17218 раз)
nachinaushij
Гость
« Ответ #30 : Март 25, 2012, 18:08 »

toUInt

Е***ческая сила! Всего дна буковка и всё работает! Благодарю!
Записан
nachinaushij
Гость
« Ответ #31 : Март 29, 2012, 15:06 »

Люди добрые! Помогите разгадать ребус из той же области. Программа записывает в бинарный файл дату. Никак не могу догнать, каким алгоритмом она высчитывается. Вот примеры:
12.03.2012 = D1279611
13.03.2012 = D127D901
12.04.2012 = D14F6601
12.03.2013 = D307BB01
Записан
Bepec
Гость
« Ответ #32 : Март 29, 2012, 15:13 »

Вопрос конечно глупый(а мб наоборот очень умный)
Твоя программа?
Записан
nachinaushij
Гость
« Ответ #33 : Март 29, 2012, 15:15 »

Вопрос конечно глупый(а мб наоборот очень умный)
Твоя программа?

Неа, не моя. Причём она win32, а я в linux пытаюсь сделать аналог.
Записан
Bepec
Гость
« Ответ #34 : Март 29, 2012, 15:19 »

Спросить бы зачем тебе такая фигня?

А по теме - или формат ищи той проги, как она и что сохраняет, или анализируй сам Подмигивающий

PS получится почти что хак.
Записан
nachinaushij
Гость
« Ответ #35 : Март 29, 2012, 15:21 »

Собственно перед тем, как задать вопрос, я уже пару дней анализирую Грустный Может она использует DOS Filetime, который укладывается в 4 байта, но я не нашёл, каким макаром эти 4 байта назад раскладывать.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #36 : Март 29, 2012, 15:25 »

Количество секунд с 1901-01-01 00:00:01.
Записан
nachinaushij
Гость
« Ответ #37 : Март 29, 2012, 15:29 »

12.03.2012 => unixtime => 1 331 510 400     42 года
D1279611 => 3 509 032 465    111 лет

Хм, может и впрямь ...
« Последнее редактирование: Март 29, 2012, 15:31 от nachinaushij » Записан
Bepec
Гость
« Ответ #38 : Март 29, 2012, 15:37 »

3509032465 сек
58483874,41 мин
974731,240 час
40613,80  день
1353,793 мес
112,81 год
2013-112,81 = 1900,19 год от Р.Х.

Улыбающийся Давно обсуждал ещё студентом эту дату Подмигивающий

Спасибо Lisandrel что напомнили.
Записан
nachinaushij
Гость
« Ответ #39 : Март 29, 2012, 16:10 »

Спасибо Lisandrel
Адназначна! Сердечная благодарность. Теперь всё срослось. Количество секунд с 1901 по 1970 = 2177452799. Отнимаем его от того хитрого времени, которое сохранено в файле и получаем милое сердцу unixtime. Ура, товарищи!

Небольшое дополнение. Вдруг кто озадачиться такой же проблемой, чтобы не подставлять грабли, расскажу. Сначала были выставлены в виджете QDateEdit такие настройки:
время = 00:00:00
мин. время = 00:00:00
макс. время = 23:59:59
timeSpec = LocalTime
Потом экспериментальным путём была выведена цифра 2177522047. Вот её то я и отнимаю, чтобы из количества секунд с 1901 года получить unixtime. Откуда я взял первую цифру (2177452799) уже не помню
« Последнее редактирование: Апрель 03, 2012, 13:03 от nachinaushij » Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.