#ifndef _ALADIN_DIVETIME_HPP_ #define _ALADIN_DIVETIME_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_SYSTEMTIME_HPP_ #include #endif #ifndef _COMMON_MATH_HPP_ #include #endif #ifndef _COMMON_SDATE_HPP_ #include #endif class DiveTime { public: DiveTime(); DiveTime(BYTE b1,BYTE b2,BYTE b3,BYTE b4); virtual ~DiveTime(); const SystemTime &setTime(BYTE b1,BYTE b2,BYTE b3,BYTE b4); const SystemTime &getTime(void)const; private: SystemTime mDiveTime; }; inline DiveTime::DiveTime() { } inline DiveTime::DiveTime(BYTE b1,BYTE b2,BYTE b3,BYTE b4) { setTime(b1,b2,b3,b4); } inline DiveTime::~DiveTime() { } inline const SystemTime &DiveTime::setTime(BYTE b1,BYTE b2,BYTE b3,BYTE b4) { int entryTime=b1*Math::power(2,24)+b2*Math::power(2,16)+b3*Math::power(2,8)+b4; int divisor=entryTime/172800; int remainder=entryTime%172800; int hours=remainder/7200; int minutes=(remainder/120)%60; SDate entryDate=SDate().daysAddActual(SDate(1,1,1994),divisor); mDiveTime.makeTime(entryDate.year(),entryDate.month(),entryDate.day(),hours,minutes,0); return mDiveTime; } inline const SystemTime &DiveTime::getTime(void)const { return mDiveTime; } #endif