比较两个时间戳

时间:2014-06-19 22:03:09

标签: c++

我编写了以下功能,非常简单。当我比较两个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;
    }

1 个答案:

答案 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());

与其他领域类似。