C# System::DateTime返回值1/1/1 00:00:00
我试图从DateTimePicker控件获取日期和时间,并在稍后将datum的值设置为该值。数据是System::DateTime(C#)。但数据是“1/1/1 00:00:00”,问题是什么?问题是最后一行:C# System::DateTime返回值1/1/1 00:00:00,c#,c++,mfc,coledatetime,C#,C++,Mfc,Coledatetime,我试图从DateTimePicker控件获取日期和时间,并在稍后将datum的值设置为该值。数据是System::DateTime(C#)。但数据是“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); 实际上是一个静态成员函数,返回DateTime对象。在C
COleDateTime m_dt;
m_ctrlDateTime.GetTime(m_dt);
double d = dt.m_dt;
System::DateTime datum;
datum.FromOADate(d);
实际上是一个静态成员函数,返回DateTime
对象。在C++术语中,你可以把它看作是.< /p>
它不像普通成员函数那样初始化数据。让你困惑的是这样一个事实。在C#中,这是不可能的,您可能会收到一个编译时错误,提醒您这个问题
像这样编写代码,您会很好:
datum.FromOADate(d);
您还可以执行以下操作(但这同样令人困惑):
需要像这样的东西:DateTime now=m_ctrlDateTime.GetTime(m_dt)@那怎么办?
GetTime
成员函数不返回DateTime
值。它实际上返回一个BOOL
,这意味着它甚至可以编译,执行隐式转换以调用DateTime
构造函数,该构造函数需要长的。为什么需要该行?
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);