⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xdatetime.cpp

📁 BCB的学习资料
💻 CPP
📖 第 1 页 / 共 4 页
字号:
}

XDateTime::operator XTime() const
{
    XTime aTime;
    DecodeTime( aTime );
    return aTime;
}
XDateTime::operator XDate() const
{
    XDate aDate;
    DecodeDate( aDate );
    return aDate;
}
XDateTime::operator XLongTime() const
{
    XLongTime aTime( *this );
    return aTime;
}
XDateTime::operator XLongDate() const
{
    XLongDate aDate( *this );
    return aDate;
}
XDateTime::operator TDateTime() const
{
    XTime aTime(*this);
    XDate aDate(*this);
    TDateTime dtTime((XWord)aTime.GetHour(),(XWord)aTime.GetMinute(),(XWord)aTime.GetSecond(),(XWord)aTime.GetMillis());
    TDateTime dtDate((XWord)aDate.GetYear(),(XWord)aDate.GetMonth(),(XWord)aDate.GetDay());
    return dtTime+=dtDate;
}

XDateTime & XDateTime::operator+=(XLong aDateTime)
{
    m_DateTime = RoundDateTime( aDateTime + m_DateTime );
    return *this;
}
XDateTime & XDateTime::operator+=(const XDateTime & aDateTime )
{
    m_DateTime = RoundDateTime( aDateTime.m_DateTime + m_DateTime );
    return *this;
}
XDateTime & XDateTime::operator+=(const TDateTime & aDateTime )
{
    m_DateTime = RoundDateTime( m_DateTime + CalcDateTime(aDateTime) );
    return *this;
}
XDateTime & XDateTime::operator+=(const XDate & aDate)
{
    m_DateTime = RoundDateTime( m_DateTime + CalcDateTime(aDate) );
    return *this;
}
XDateTime & XDateTime::operator+=(const XTime & aTime)
{
    m_DateTime = RoundDateTime( m_DateTime + CalcDateTime(aTime) );
    return *this;
}
XDateTime & XDateTime::operator+=(const XLongDate & aLongDate )
{
    m_DateTime = RoundDateTime( m_DateTime + CalcDateTime(aLongDate) );
    return *this;
}
XDateTime & XDateTime::operator+=(const XLongTime & aLongTime )
{
    m_DateTime = RoundDateTime( m_DateTime + CalcDateTime(aLongTime) );
    return *this;
}


XDateTime & XDateTime::operator-=(XLong aDateTime)
{
    m_DateTime = RoundDateTime( m_DateTime - aDateTime);
    return *this;
}
XDateTime & XDateTime::operator-=(const XDateTime & aDateTime )
{
    m_DateTime = RoundDateTime(  m_DateTime - aDateTime.m_DateTime);
    return *this;
}
XDateTime & XDateTime::operator-=(const TDateTime & aDateTime )
{
    m_DateTime = RoundDateTime( m_DateTime - CalcDateTime(aDateTime) );
    return *this;
}
XDateTime & XDateTime::operator-=(const XDate & aDate)
{
    m_DateTime = RoundDateTime( m_DateTime - CalcDateTime(aDate) );
    return *this;
}
XDateTime & XDateTime::operator-=(const XTime & aTime)
{
    m_DateTime = RoundDateTime( m_DateTime - CalcDateTime(aTime) );
    return *this;
}
XDateTime & XDateTime::operator-=(const XLongDate & aLongDate )
{
    m_DateTime = RoundDateTime( m_DateTime - CalcDateTime(aLongDate) );
    return *this;
}
XDateTime & XDateTime::operator-=(const XLongTime & aLongTime )
{
    m_DateTime = RoundDateTime( m_DateTime - CalcDateTime(aLongTime) );
    return *this;
}

XDateTime XDateTime::operator+(XLong aDateTime) const
{
    XDateTime dt( m_DateTime + aDateTime );
    return dt;
}
XDateTime XDateTime::operator+(const XDateTime & aDateTime ) const
{
    XDateTime dt( m_DateTime + aDateTime.m_DateTime );
    return dt;
}
XDateTime XDateTime::operator+(const TDateTime & aDateTime ) const
{
    XDateTime dt( m_DateTime + CalcDateTime(aDateTime) );
    return dt;
}
XDateTime XDateTime::operator+(const XDate & aDate) const
{
    XDateTime dt( m_DateTime + CalcDateTime(aDate) );
    return dt;
}
XDateTime XDateTime::operator+(const XTime & aTime) const
{
    XDateTime dt( m_DateTime + CalcDateTime(aTime) );
    return dt;
}
XDateTime XDateTime::operator+(const XLongDate & aLongDate ) const
{
    XDateTime dt( m_DateTime + CalcDateTime(aLongDate) );
    return dt;
}
XDateTime XDateTime::operator+(const XLongTime & aLongTime ) const
{
    XDateTime dt( m_DateTime + CalcDateTime(aLongTime) );
    return dt;
}

XDateTime XDateTime::operator-(XLong aDateTime) const
{
    XDateTime dt( m_DateTime - aDateTime );
    return dt;
}
XDateTime XDateTime::operator-(const XDateTime & aDateTime ) const
{
    XDateTime dt( m_DateTime - aDateTime.m_DateTime );
    return dt;
}
XDateTime XDateTime::operator-(const TDateTime & aDateTime ) const
{
    XDateTime dt( m_DateTime - CalcDateTime(aDateTime) );
    return dt;
}
XDateTime XDateTime::operator-(const XDate & aDate) const
{
    XDateTime dt( m_DateTime - CalcDateTime(aDate) );
    return dt;
}
XDateTime XDateTime::operator-(const XTime & aTime) const
{
    XDateTime dt( m_DateTime - CalcDateTime(aTime) );
    return dt;
}
XDateTime XDateTime::operator-(const XLongDate & aLongDate ) const
{
    XDateTime dt( m_DateTime - CalcDateTime(aLongDate) );
    return dt;
}
XDateTime XDateTime::operator-(const XLongTime & aLongTime ) const
{
    XDateTime dt( m_DateTime - CalcDateTime(aLongTime) );
    return dt;
}

void XDateTime::AddMillis(XLong aMillis)
{
    m_DateTime = RoundDateTime( m_DateTime + aMillis );
}
void XDateTime::AddSecond(XLong aSeconds)
{
    m_DateTime = RoundDateTime( m_DateTime + aSeconds * MILLIS_PRE_SECOND );
}
void XDateTime::AddMinute(XLong aMinutes)
{
    m_DateTime = RoundDateTime( m_DateTime + aMinutes * MILLIS_PRE_MINUTE);
}
void XDateTime::AddHour(XLong aHours)
{
    m_DateTime = RoundDateTime( m_DateTime + aHours * MILLIS_PRE_HOUR);
}
void XDateTime::AddDay(int aDays)
{
    m_DateTime = RoundDateTime( m_DateTime + aDays * MAX_MILLIS_PRE_DAY64);
}

void XDateTime::SubMillis(XLong aMillis)
{
    m_DateTime = RoundDateTime( m_DateTime - aMillis );
}
void XDateTime::SubSecond(XLong aSeconds)
{
    m_DateTime = RoundDateTime( m_DateTime - aSeconds * MILLIS_PRE_SECOND );
}
void XDateTime::SubMinute(XLong aMinutes)
{
    m_DateTime = RoundDateTime( m_DateTime - aMinutes * MILLIS_PRE_MINUTE);
}
void XDateTime::SubHour(XLong aHours)
{
    m_DateTime = RoundDateTime( m_DateTime - aHours * MILLIS_PRE_HOUR);
}
void XDateTime::SubDay(int aDays)
{
    m_DateTime = RoundDateTime( m_DateTime - aDays * MAX_MILLIS_PRE_DAY64);
}

bool XDateTime::operator==(XLong aDateTime) const
{
    return m_DateTime == RoundDateTime( aDateTime );
}
bool XDateTime::operator==(const XDateTime & aDateTime) const
{
    return m_DateTime == aDateTime.m_DateTime;
}
bool XDateTime::operator==(const TDateTime & aDateTime) const
{
    return m_DateTime == CalcDateTime(aDateTime);
}
bool XDateTime::operator==(const XDate & aDate) const
{
    return m_DateTime == CalcDateTime(aDate);
}
bool XDateTime::operator==(const XTime & aTime) const
{
    return m_DateTime == CalcDateTime(aTime);
}
bool XDateTime::operator==(const XLongDate & aLongDate) const
{
    return m_DateTime == CalcDateTime(aLongDate);
}
bool XDateTime::operator==(const XLongTime & aLongTime) const
{
    return m_DateTime == CalcDateTime(aLongTime);
}


bool XDateTime::operator!=(XLong aDateTime) const
{
    return m_DateTime != RoundDateTime( aDateTime );
}
bool XDateTime::operator!=(const XDateTime & aDateTime) const
{
    return m_DateTime != aDateTime.m_DateTime;
}
bool XDateTime::operator!=(const TDateTime & aDateTime) const
{
    return m_DateTime != CalcDateTime(aDateTime);
}
bool XDateTime::operator!=(const XDate & aDate) const
{
    return m_DateTime != CalcDateTime(aDate);
}
bool XDateTime::operator!=(const XTime & aTime) const
{
    return m_DateTime != CalcDateTime(aTime);
}
bool XDateTime::operator!=(const XLongDate & aLongDate) const
{
    return m_DateTime != CalcDateTime(aLongDate);
}
bool XDateTime::operator!=(const XLongTime & aLongTime) const
{
    return m_DateTime != CalcDateTime(aLongTime);
}


bool XDateTime::operator>=(XLong aDateTime) const
{
    return m_DateTime >= RoundDateTime( aDateTime );
}
bool XDateTime::operator>=(const XDateTime & aDateTime) const
{
    return m_DateTime >= aDateTime.m_DateTime;
}
bool XDateTime::operator>=(const TDateTime & aDateTime) const
{
    return m_DateTime >= CalcDateTime(aDateTime);
}
bool XDateTime::operator>=(const XDate & aDate) const
{
    return m_DateTime >= CalcDateTime(aDate);
}
bool XDateTime::operator>=(const XTime & aTime) const
{
    return m_DateTime >= CalcDateTime(aTime);
}
bool XDateTime::operator>=(const XLongDate & aLongDate) const
{
    return m_DateTime >= CalcDateTime(aLongDate);
}
bool XDateTime::operator>=(const XLongTime & aLongTime) const
{
    return m_DateTime >= CalcDateTime(aLongTime);
}


bool XDateTime::operator<=(XLong aDateTime) const
{
    return m_DateTime <= RoundDateTime( aDateTime );
}
bool XDateTime::operator<=(const XDateTime & aDateTime) const
{
    return m_DateTime <= aDateTime.m_DateTime;
}
bool XDateTime::operator<=(const TDateTime & aDateTime) const
{
    return m_DateTime <= CalcDateTime(aDateTime);
}
bool XDateTime::operator<=(const XDate & aDate) const
{
    return m_DateTime <= CalcDateTime(aDate);
}
bool XDateTime::operator<=(const XTime & aTime) const
{
    return m_DateTime <= CalcDateTime(aTime);
}
bool XDateTime::operator<=(const XLongDate & aLongDate) const
{
    return m_DateTime <= CalcDateTime(aLongDate);
}
bool XDateTime::operator<=(const XLongTime & aLongTime) const
{
    return m_DateTime <= CalcDateTime(aLongTime);
}

bool XDateTime::operator>(XLong aDateTime) const
{
    return m_DateTime > RoundDateTime( aDateTime );
}
bool XDateTime::operator>(const XDateTime & aDateTime) const
{
    return m_DateTime > aDateTime.m_DateTime;
}
bool XDateTime::operator>(const TDateTime & aDateTime) const
{
    return m_DateTime > CalcDateTime(aDateTime);
}
bool XDateTime::operator>(const XDate & aDate) const
{
    return m_DateTime > CalcDateTime(aDate);
}
bool XDateTime::operator>(const XTime & aTime) const
{
    return m_DateTime > CalcDateTime(aTime);
}
bool XDateTime::operator>(const XLongDate & aLongDate) const
{
    return m_DateTime > CalcDateTime(aLongDate);
}
bool XDateTime::operator>(const XLongTime & aLongTime) const
{
    return m_DateTime > CalcDateTime(aLongTime);
}


bool XDateTime::operator<(XLong aDateTime) const
{
    return m_DateTime < RoundDateTime( aDateTime );
}
bool XDateTime::operator<(const XDateTime & aDateTime) const
{
    return m_DateTime < aDateTime.m_DateTime;
}
bool XDateTime::operator<(const TDateTime & aDateTime) const
{
    return m_DateTime < CalcDateTime(aDateTime);
}
bool XDateTime::operator<(const XDate & aDate) const
{
    return m_DateTime < CalcDateTime(aDate);
}
bool XDateTime::operator<(const XTime & aTime) const
{
    return m_DateTime < CalcDateTime(aTime);
}
bool XDateTime::operator<(const XLongDate & aLongDate) const
{
    return m_DateTime < CalcDateTime(aLongDate);
}
bool XDateTime::operator<(const XLongTime & aLongTime) const
{
    return m_DateTime < CalcDateTime(aLongTime);
}

int   XDateTime::GetLongTime() const
{
    return (int)(m_DateTime % MAX_MILLIS_PRE_DAY64);
}
int   XDateTime::GetLongDate() const
{
    int aDays = (int)(m_DateTime / MAX_MILLIS_PRE_DAY64);
    //int aMillis = (int)(m_DateTime % MAX_MILLIS_PRE_DAY64);
    return XLongDate::RoundDate( aDays );
}

//---------------------------------------------------------------------------
XLongDate::XLongDate(int aYear,int aMonth,int aDay)
    :m_LongDate( CalcLongDate(aYear,aMonth,aDay) )
{}

XLongDate::XLongDate(XInt aLongDate)
    :m_LongDate( RoundDate(aLongDate) )
{}
XLongDate::XLongDate(const XDateTime & aDateTime)
    :m_LongDate( CalcLongDate(aDateTime) )
{}
XLongDate::XLongDate(const XLongDate & aLongDate)
    :m_LongDate( aLongDate.m_LongDate )
{}
XLongDate::XLongDate(const TDateTime & aDateTime)
    :m_LongDate( CalcLongDate(aDateTime) )
{}
XLongDate::XLongDate(const XDate & aDate)
    :m_LongDate( CalcLongDate(aDate) )
{}
XLongDate::~XLongDate()
{
}
XInt XLongDate::RoundDate(XInt aLongDate)
{
    XInt tmp = aLongDate % MAX_DAYS;
    if( tmp < 0 ) tmp += MAX_DAYS;
    else if( tmp == 0 )
    {
        if( aLongDate == 0 ) tmp = MAX_DAYS-1;
        else tmp = 1;
    }
    return tmp;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -