Здравствуйте, гость ( Вход | Регистрация )
iddqd | Дата 28.7.2010, 20:33 |
Тему разделили: http://www.forum.crossplatform.ru/index.ph...=5286&st=10 Ясно. Просто уведомлений никаких не приходило... В таком случае продолжим обсуждение там. |
|
BRE | Дата 28.7.2010, 20:28 |
Видимо из-за произошедшего сбоя потерялась часть сообщений в теме. Тему разделили: http://www.forum.crossplatform.ru/index.ph...=5286&st=10 Дата должна получиться следующая - 06.02.1960 А не 16.02.1960? Хотя, возможно, нужно учитывать погрешность на продолжительность солнечных суток. |
|
iddqd | Дата 28.7.2010, 18:53 |
Видимо из-за произошедшего сбоя потерялась часть сообщений в теме. Я попытался восстановить по имеющимся уведомлениям об ответах: maint Цитата Цитата Цитата(iddqd @ 20.7.2010, 15:36) Есть дата, хранящаяся в микросекундах в виде int64. Как правильнее и быстрее преобразовать её в QDate/QDateTime ? Пробовал QDateTime::addMSecs(), не это не то, так как результат в дебаггере показывает 1531 год по моему так void QDateTime::setTime_t ( uint seconds ) Sets the date and time given the number of seconds that have passed since 1970-01-01T00:00:00, Coordinated Universal Time (Qt::UTC). On systems that do not support time zones this function will behave as if local time were Qt::UTC. Litkevich Yuriy Цитата iddqd, возможно дата в Unix-формате, тогда используй: http://doc.crossplatform.ru/qt/4.5.0/qdate...html#fromTime_t (QDateTime QDateTime::fromTime_t ( uint seconds ) [static]) ну а из него уже получишь только дату iddqd Цитата Дата может быть как до 1970, так и после 1970 года. SABROG Цитата Цитата Цитата(iddqd @ 21.7.2010, 17:01) SABROG, год должен получиться 1960-й Правильно, чуток не верно посчитал: 61855747200000000 / 1000 = 61855747200000 // переводим в миллисекунды 61855747200000 / 1000 = 61855747200 // переводим в секунды 365.2424 * 24 * 60 * 60 = 31556943.36 // вычисляем количество секунд в году Грегорианского календаря 61855747200 / 31556943.36 = 1960.1 // получаем количество лет 4,13821440 - остаток 4 секунды. То есть судя по маленькому остатку у тебя в базе почти ровная дата 01-01-1960 00:00:04 --- Дата должна получиться следующая - 06.02.1960 Вопрос остаётся открытым, декодировать так и не получилось пока что... |
|
Алексей1153 | Дата 18.7.2010, 17:41 |
DEADHUNT, для меня это одно и то же. Кстати, ещё ни разу не приходилось std::string применять А в этом примере я условился, что принимается по ссылке именно вектор. Это вообще дело вкуса и граблей за плечами (так как я немного рассеянный, я всячески себя подстраховываю) |
|
DEADHUNT | Дата 18.7.2010, 16:40 |
то есть readRawData считает >= labelLen+1? вообще здесь лучше просто string использовать. |
|
Алексей1153 | Дата 18.7.2010, 15:58 |
DEADHUNT, тут код очень маленький и запутаться просто негде. Но, что бы там не было наколбашено, обеспечиваем, что строка заканчивается на zero-terminator. Вот другой пример:
|
|
DEADHUNT | Дата 18.7.2010, 15:11 |
DEADHUNT, зато надёжно. А на скорости это не скажется что значит надёжно, ты считаешь тот код не детерминированным? при конструировании вектора ты задаёшь его длину и начальные значения. |
|
Алексей1153 | Дата 18.7.2010, 14:54 |
DEADHUNT, зато надёжно. А на скорости это не скажется | |
DEADHUNT | Дата 18.7.2010, 11:21 |
бесполезно, т. к. ты уже инициализировал вектор нулями. |
|
Алексей1153 | Дата 18.7.2010, 6:00 |
а лучше так
и не забудешь delete вызвать |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 10.5.2024, 16:24 |