我编写了以下功能,非常简单。当我比较两个CTime时似乎无法工作。我真的不知道出了什么问题,请你帮帮我吗?
bool operator<(CTime second)
{
if (year<second.getYear())
return true;
if (year>second.getYear())
return false;
if (year<second.getMonth())
return true;
If (year>second.getMonth())
return false;
if (year<second.getDay())
return true;
if (year>second.getDay())
return false;
if (year<second.getHour())
return true;
if (year>second.getHour())
return false;
if (year<second.getMin())
return true;
if (year>second.getMin())
return false;
if (year<second.getSec())
return true;
if (year>second.getSec())
return false;
return false;
}
答案 0 :(得分:1)
您正在与所有字段的year
进行比较。
而不是
if (year<second.getMonth())
return true;
你需要
if (this->getMonth()<second.getMonth())
return true;
与其他领域类似。
<强>更新强>
您可以通过替换以下行来使代码更简洁:
if (year<second.getYear())
return true;
if (year>second.getYear())
return false;
与
if (year != second.getYear())
return (year < second.getYear());
与其他领域类似。