C++ 使用ColeDateTimeSpan将天数减去为ColeDateTime

C++ 使用ColeDateTimeSpan将天数减去为ColeDateTime,c++,coledatetime,C++,Coledatetime,我必须为我的一个作业更新一个旧的日期类,我被这个函数卡住了,我必须重做 如果操作可行,函数需要返回Bool 我要做的是用ColeDateTimeSpan减去天数,得到ColeDateTime 我知道我可以做这样的事情: int i = 2; COleDateTime time_DT = COleDateTime(2014, 2, 20, 0, 0, 0); COleDateTimeSpan time_SP = COleDateTimeSpan(i); time_DT = time_DT

我必须为我的一个作业更新一个旧的日期类,我被这个函数卡住了,我必须重做

如果操作可行,函数需要返回Bool

我要做的是用ColeDateTimeSpan减去天数,得到ColeDateTime

我知道我可以做这样的事情:

int i = 2;    
COleDateTime time_DT = COleDateTime(2014, 2, 20, 0, 0, 0);
COleDateTimeSpan time_SP = COleDateTimeSpan(i);
time_DT = time_DT - time_SP;
cout << time_DT.GetDay() << endl;
谢谢


编辑:我的意思是减法

我知道对你的作业来说已经太晚了,不过,其他人可能会觉得它很有用

bool Date::AddDays(long days)
{
    // Copy the original value to temporary variable so that it is not lost when subtraction results 
    // in invalid time.
    COleDateTime dtTime(m_time);

    // Check the time for validity before performing subtraction.
    if(dtTime.GetStatus() != COleDateTime::valid )
        return false;

    // Check the input for valid value range. Must be positive value.
    if(days < 0)
        return false;

    // Use that constructor of 'COleDateTimeSpan' which takes days as input.
    COleDateTimeSpan tsDays(days, 0,0,0);   // (Days, Hours, Min, Sec).

    // Perform the subtraction.
    dtTime = dtTime - tsDays;

    // Check if the subtraction has resulted into valid time.
    if(dtTime.GetStatus() != COleDateTime::valid )
        return false;

    // Copy the result from temporary variable to class member.
    m_time = dtTime;

    return true;
}
bool Date::AddDays(长天数)
{
//将原始值复制到临时变量,以便在减法结果时不会丢失
//在无效时间。
COleDateTime dtTime(MU时间);
//在执行减法之前检查时间是否有效。
if(dtTime.GetStatus()!=COleDateTime::valid)
返回false;
//检查输入的有效值范围。必须为正值。
如果(天数<0)
返回false;
//使用“COleDateTimeSpan”的构造函数,它以天作为输入。
COleDateTimeSpan tsDays(天,0,0,0);/(天,小时,分钟,秒)。
//执行减法。
dtTime=dtTime-tsDays;
//检查减法是否导致有效时间。
if(dtTime.GetStatus()!=COleDateTime::valid)
返回false;
//将结果从临时变量复制到类成员。
m_time=dtTime;
返回true;
}
bool Date::addDays(long days)
{
    bool bRet = true;
    COleDateTimeSpan ts(m_time); //m_time being my COleDateTime
    COleDateTimeSpan tl(days);

    if (tl > ts)
    {
        bRet = false;
        return bRet;
    }
    else
    {
        return bRet;
    }   
}
bool Date::AddDays(long days)
{
    // Copy the original value to temporary variable so that it is not lost when subtraction results 
    // in invalid time.
    COleDateTime dtTime(m_time);

    // Check the time for validity before performing subtraction.
    if(dtTime.GetStatus() != COleDateTime::valid )
        return false;

    // Check the input for valid value range. Must be positive value.
    if(days < 0)
        return false;

    // Use that constructor of 'COleDateTimeSpan' which takes days as input.
    COleDateTimeSpan tsDays(days, 0,0,0);   // (Days, Hours, Min, Sec).

    // Perform the subtraction.
    dtTime = dtTime - tsDays;

    // Check if the subtraction has resulted into valid time.
    if(dtTime.GetStatus() != COleDateTime::valid )
        return false;

    // Copy the result from temporary variable to class member.
    m_time = dtTime;

    return true;
}