powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как конвертировать дату
11 сообщений из 11, страница 1 из 1
Как конвертировать дату
    #38026146
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получаю дату и время в таком виде, например:
84 47 a6 8b 80 bb cd 01
говорится, что это значение структуры FILETIME.
Как его конвертировать и ввести в эту структуру, либо в формат DateTime в РВ10.5?
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38026359
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,

1. Если у вас данные в виде блоба размером 8 байтов то см. п.2
Иначе надо сначала из текста с шестнадцатеричным представлением этих 8 байтов перевести все в блоб.

2. Далее надо воспользоваться например такой техникой копирования из блоба в структуру:
http://www.sql.ru/forum/actualthread.aspx?tid=956774
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38026795
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,
Пробежался по предложенным ссылкам и увидел свой же пример в теме, и снова всё получилось средствами РВ.
Спасибо, что освежили память.
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38027603
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AIS, Функцию называй как хочешь.

Входной параметр long - t_sec
На выходе - datetime

-----------------
datetime dt

IF t_sec < 100 THEN
SetNull(dt)
RETURN dt
ELSE
RETURN datetime(RelativeDate ( date('1970-01-01'), t_sec / 86400),&
Time(mod((t_sec / 3600),24), mod(t_sec / 60 ,60), mod(t_sec,60)))
END IF
-----------------------------

Может поможет.
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38027628
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyGor,

"IF t_sec < 100". Почему именно 100? :)
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38028712
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyGor,
эт Вы не про, то что я спрашивал, а вот простое решение на мой вопрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
lb_sdt /* входной аргумент blob, при конвертации = 84 47 a6 8b 80 bb cd 01*/
string   ls_rtn
FILEDATETIME	str_flw
SYSTEMTIME	str_slw

/* загоняем в структуру - это ответ на мой вопрос "как?" */
str_flw.dwlowdatetime = Long(Integer(BlobMid(lb_sdt,1,2)),Integer(BlobMid(lb_sdt,3,2)))
str_flw.dwhighdatetime =  Long(Integer(BlobMid(lb_sdt,5,2)),Integer(BlobMid(lb_sdt,7,2)))

/* получаем в понятном виде - а может кому пригодится :)*/
if FileTimeToSystemTime(str_flw, str_slw) then
   ls_rtn = String(Date(str_slw.ui_WYear, str_slw.ui_WMonth, str_slw.ui_wday),"yyyy-mm-dd")
   ls_rtn += " "+String(Time(str_slw.ui_whour,str_slw.ui_wminute, str_slw.ui_wsecond,&
                str_slw.ui_wmilliseconds),"hh:mm:ss:ffffff")
end if
Return ls_rtn
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38028747
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS,

А вот это
Код: sql
1.
Long(Integer(BlobMid(lb_sdt,1,2)),Integer(BlobMid(lb_sdt,3,2)))


нельзя записать так?
Код: sql
1.
Long(BlobMid(lb_sdt,1,4))
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38028936
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,
конечно, можно.

P.S. просто оплата идет за количество символов в скрипте.
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38029061
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovsky,

Все довольно просто.

Конечно же функция упрощена.

В информацию зашиты контрольные точки,
например: t_sec=
1 - вернуть текущее время,
2 - начало месяца,
и т.д. что бы не плодить функции обработки.
т.к. 100 сек, от 01-01-1970 в принципе не может быть в информации.

Почему, передается long,
Информация передается структурой, где кроме времени,
еще какая-то информация и обрабатывается сразу вся структура,
а эта функция, маленький кусочек из обработки.
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38029183
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyGorт.к. 100 сек, от 01-01-1970 в принципе не может быть в информации.

А 101 сек может?
...
Рейтинг: 0 / 0
Как конвертировать дату
    #38029441
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovsky,

Было бы 1000, спросили бы почему 1000?

Дело то не в количестве, а как разделяется поток,
на информационную и командную часть.

Есть разумные границы допустимости передаваемой информации,
так почему бы остальной диапазон не использовать для других целей.

Чем более унифицированый поток, тем легче и быстрей обрабатывать.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как конвертировать дату
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]