63 lines
1.2 KiB
C++
63 lines
1.2 KiB
C++
#ifndef _ALADIN_DIVETIME_HPP_
|
|
#define _ALADIN_DIVETIME_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_SYSTEMTIME_HPP_
|
|
#include <common/systime.hpp>
|
|
#endif
|
|
#ifndef _COMMON_MATH_HPP_
|
|
#include <common/math.hpp>
|
|
#endif
|
|
#ifndef _COMMON_SDATE_HPP_
|
|
#include <common/sdate.hpp>
|
|
#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
|