c # — System :: DateTime возвращает значение 1/1/1 00:00:00

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» в чем проблема?

-2

Решение

Проблема в самой последней строке:

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);
1

Другие решения

Других решений пока нет …