Files
Work/com/vtime.hpp
2024-08-07 09:12:07 -04:00

127 lines
2.3 KiB
C++

#ifndef _COM_VARIANTTIME_HPP_
#define _COM_VARIANTTIME_HPP_
#ifndef _COMMON_SYSTEMTIME_HPP_
#include <common/systime.hpp>
#endif
#ifndef _COM_COM_HPP_
#include <com/com.hpp>
#endif
class VariantTime
{
public:
VariantTime(void);
VariantTime(const VariantTime &someVariantTime);
VariantTime(const SystemTime &systemTime);
VariantTime(const DATE &someDATE);
virtual ~VariantTime();
VariantTime &operator=(const VariantTime &variantTime);
VariantTime &operator=(const DATE &someDATE);
VariantTime &operator=(const SystemTime &systemTime);
bool operator==(const VariantTime &variantTime)const;
bool operator==(const DATE &someDATE)const;
bool operator==(const SystemTime &systemTime)const;
void getTime(DATE &someDATE);
void getTime(SystemTime &systemTime);
void refresh(void);
DATE &getDATE(void);
private:
DATE mDate;
};
inline
VariantTime::VariantTime(void)
{
refresh();
}
inline
VariantTime::VariantTime(const SystemTime &systemTime)
{
*this=systemTime;
}
inline
VariantTime::VariantTime(const DATE &someDATE)
{
*this=someDATE;
}
inline
VariantTime::VariantTime(const VariantTime &someVariantTime)
{
*this=someVariantTime;
}
inline
VariantTime::~VariantTime()
{
}
inline
VariantTime &VariantTime::operator=(const VariantTime &variantTime)
{
mDate=variantTime.mDate;
return *this;
}
inline
VariantTime &VariantTime::operator=(const DATE &someDATE)
{
mDate=someDATE;
return *this;
}
inline
VariantTime &VariantTime::operator=(const SystemTime &systemTime)
{
::SystemTimeToVariantTime(&((SystemTime&)systemTime).getSYSTEMTIME(),&mDate);
return *this;
}
inline
bool VariantTime::operator==(const VariantTime &variantTime)const
{
return mDate==variantTime.mDate;
}
inline
bool VariantTime::operator==(const DATE &someDATE)const
{
return mDate==someDATE;
}
inline
bool VariantTime::operator==(const SystemTime &systemTime)const
{
DATE date;
::SystemTimeToVariantTime(&((SystemTime&)systemTime).getSYSTEMTIME(),&date);
return mDate==date;
}
inline
void VariantTime::getTime(DATE &someDATE)
{
someDATE=mDate;
}
inline
void VariantTime::getTime(SystemTime &systemTime)
{
::VariantTimeToSystemTime(mDate,&systemTime.getSYSTEMTIME());
}
inline
void VariantTime::refresh(void)
{
SystemTime systemTime;
::SystemTimeToVariantTime(&systemTime.getSYSTEMTIME(),&mDate);
}
inline
DATE &VariantTime::getDATE(void)
{
return mDate;
}
#endif