Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение диалоговых окон с календарём 
V
    Опции темы
586
Дата 28.11.2008, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Если нужен числовой формат, то SYSTEMTIME можно конвертировать в FILETIME (64-битное целое число).

Код
SYSTEMTIME st;
FILETIME ft;

//GetLocalTime(&st);

SystemTimeToFileTime(&st, &ft);


По поводу double, подобных функций в WinAPI не видел. Можешь посмотреть, как реализована функция Now() или объект TDateTime в исходниках VCL (Delphi), или поискать в гугле.
http://www.wasm.ru/forum/viewtopic.php?pid=168066#p168066

А зачем тебе нужно конвертировать в double?

Это сообщение отредактировал(а) 586 - 28.11.2008, 19:43
PM   Вверх
Brodyaga
Дата 29.11.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



мне нужно отослать дату на веб-сервис, а он принимает её в виде double... Веб-сервис написан на С#. И там нет типа FILETIME ... Может както лучше изменить функцию веб-сервиса?
PM MAIL   Вверх
Solotoy29
Дата 29.11.2008, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



У когото есть прога Електронный секретар, очень нужна на С++
PM MAIL   Вверх
jonie
Дата 30.11.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



Цитата

мне нужно отослать дату на веб-сервис, а он принимает её в виде double... Веб-сервис написан на С#. И там нет типа FILETIME
зато у DateTime есть DateTime::FromFileTime Method, что вам и надо


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Brodyaga
Дата 30.11.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Цитата

зато у DateTime есть DateTime::FromFileTime Method, что вам и надо

Точно! но как мне передать значение FILETIME на сервер? ни в long, ни в double оно не конвертица...
PM MAIL   Вверх
586
Дата 30.11.2008, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Код
FILETIME ft;
//...
ULARGE_INTEGER i;

i.LowPart = ft.dwLowDateTime;
i.HighPart = ft.dwHighDateTime;

// в i.QuadPart будет 64-битное число


или так:
Код
FILETIME ft;
//...
UINT64 i = ((UINT64)ft.dwLowDateTime) | (((UINT64)ft.dwHighDateTime) << 32);

PM   Вверх
Brodyaga
Дата 30.11.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



DateTime::FromFileTime принимает long, а long 4 байта, те формулы что вы мне привели переводят в double FILETIME который 64 байта.

Добавлено через 5 минут и 17 секунд
Код

long ll=ft.dwLowDateTime;


Это будет представление FILETIME в виде long, который проглодит DateTime::FromFileTime ?? или нет?!
PM MAIL   Вверх
586
Дата 30.11.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Цитата(Brodyaga @  30.11.2008,  15:05 Найти цитируемый пост)
DateTime::FromFileTime принимает long, а long 4 байта

Цитата(http://msdn.microsoft.com/ru-ru/library/yyaad03b.aspx)
Тип данных long. В C# тип данных long является 64-разрядным, а в C++ он 32-разрядный.

А в Managed С++ там __int64 (см. скриншот).
Цитата
те формулы что вы мне привели переводят в double FILETIME который 64 байта.

Я написал, как переводить в 64-битную целочисленную переменную.

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  1.png 5,85 Kb
PM   Вверх
Brodyaga
Дата 1.12.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Спасибо! И последний вопрос.... При первом отображении календаря там стоит выбранным текущее число и текущее время, как сделать чтобы по дефолту было выбрано другое число и время?
PM MAIL   Вверх
586
Дата 1.12.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



PM   Вверх
Brodyaga
Дата 3.12.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: нет
Всего: 2



Спасибо большое! Всё получилось! +1 ;)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.