📄 xdatetime.cpp
字号:
}
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 + -