Winforms 没有合适的用户定义转换系统:来自系统的TimeSpan:DateTime C++;CLI

Winforms 没有合适的用户定义转换系统:来自系统的TimeSpan:DateTime C++;CLI,winforms,c++-cli,Winforms,C++ Cli,我需要计算两次按键之间的时间差。当我通过改变做到这一点时,一切都起了作用。但是我需要在这里使用类((在传输时,我收到一个错误“没有合适的用户定义转换系统:TimeSpan from System:DateTime to exists” 及 我上课时间: ref class Servtime { public: Servtime(); DateTime starttime; DateTime finishtime; DateTime getTime(); }; D

我需要计算两次按键之间的时间差。当我通过改变做到这一点时,一切都起了作用。但是我需要在这里使用类((在传输时,我收到一个错误“没有合适的用户定义转换系统:TimeSpan from System:DateTime to exists”

我上课时间:

ref class Servtime
{
public:
    Servtime();
    DateTime starttime;
    DateTime finishtime;
    DateTime getTime();
};

DateTime Servtime::getTime() {
    DateTime timeee = finishtime.Subtract(starttime);
    return timeee;
}
在另一个地方指定starttime

DateTime starttime = DateTime::Now;
按一下按钮

Servtime ^ servertime = gcnew Servtime;
    servertime->finishtime = DateTime::Now;
    servertime->starttime = starttime;

我做错了什么?

您希望在这里得到什么样的结果:
DateTime timeee=finishtime.Subtract(starttime);
?左侧的值是一个时间点(
DateTime
),右侧的值是一个间隔(
TimeSpan
)@defaultlocale starttime-第一个按钮上的时间点。finishtime-第二个按钮上的时间点。timeee-我想知道在按下第一个和第二个按钮之间经过了多少时间。在这种情况下,
timeee
应该是
TimeSpan
。您需要更改
Servtime::ge的声明返回值TTIME()<<代码> >代码> TimeSpA。这两个日期之间的区别不是日期,而是时间跨度。因此GETTIME的返回值类型不正确,必须是TimeSIPN。函数的名称并不奇特,请考虑GETItValk()。@ Debug TrasaLay.谢谢!更改类型是必要的!
Servtime ^ servertime = gcnew Servtime;
    servertime->finishtime = DateTime::Now;
    servertime->starttime = starttime;