| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Преобразование _variant_t |
| Автор: Lazin 27.2.2009, 16:17 | ||
есть переменная _variant_t, которая хранит значение adDate в виде формате double, следующим образом:
нужно его преобразовать в boost::posix_time::ptime, либо во что-нибудь вменяемое(time_t, tm, FILETIME, SYSTEMTIME), ума не приложу как это сделать |
| Автор: mrbrooks 27.2.2009, 16:26 |
| это как я понимаю до запятой количество дней с 30.12.1899, а дробная часть - собственно часы, минуты,секунды и миллисекунды? Не слабая метка. Ты можешь выложить хоть одно значение? |
| Автор: Lazin 27.2.2009, 16:40 |
| не могу, но нашел ф-ю VariantTimeToSystemTime, похоже что оно... |
| Автор: mrbrooks 27.2.2009, 16:46 |
| скорее всего самое то. |
| Автор: Earnest 27.2.2009, 18:18 |
| То, конечно. И вообще, если ты в Виндоусе, то там куча структур для даты-времени и еще большая куча функций, их друго в друга преобразовывающих. В варианте хранится DATE (строго говоря, это typedef для double). VariantTimeToSystemTime преобразует ее в SYSTEMTIME, а это, в свою очередь, можно преобразовать в time_t. Только имей в виду, что у этих данных разные точки отсчета. Скажем, DATE может быть и отрицательным, и представлять время от царя Гороха, а вот time_t - unsigned число секунд, поэтому отсчитыватеся только вроде с 1970 года. Т.е. дату рождения дедушки так хранить нельзя. |
| Автор: GoldFinch 27.2.2009, 19:11 |
| _variant_t, wchar_t... что за неудобные названия типов %) |