COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum;
datum.FromOADate(d);
Я пытаюсь получить дату и время из элемента управления DateTimePicker, а затем установить для этого значения значение datum. Исходные данные — System :: DateTime (C #). Но это «1/1/1 00:00:00» в чем проблема?
Проблема в самой последней строке:
datum.FromOADate(d);
DateTime::FromOADate
на самом деле статическая функция-член, которая возвращается DateTime
объект. В терминах C ++ вы можете думать об этом как именованный конструктор.
Оно делает не инициализировать datum
как обычная функция-член. Вас смущает тот факт, что C ++ позволяет вызывать статические члены, используя экземпляр объекта. В C # это было бы невозможно, и вы получили бы ошибку времени компиляции, предупреждающую вас о проблеме.
Напишите такой код, и все будет в порядке:
COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum = System::DateTime::FromOADate(d);
Вы также можете сделать следующее (но это также может сбить с толку):
COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum;
datum = datum.FromOADate(d);
Других решений пока нет …