You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitlib.pub/MITLIB/mcctrdll/CurrentMsTime.h

60 lines
2.0 KiB
C++

// CurrentMsTime.h: interface for the CCurrentMsTime class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CURRENTMSTIME_H__008B9E67_97A4_4B6E_A2DE_9EFA119208E3__INCLUDED_)
#define AFX_CURRENTMSTIME_H__008B9E67_97A4_4B6E_A2DE_9EFA119208E3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifdef BUILD_MCCTRDLL
#define MCCTRDLLCLASS __declspec(dllexport)
#else
#define MCCTRDLLCLASS __declspec(dllimport)
#endif
// Note : this class might not work after year 2038!
// this is because _ftime() returns a long data type since midnight(00:00:00), January 1, 1970
// The long data type will become a negative value after 2038AD
// long data type is 32 bit
// 32 bit value = 2^32 = 4294967296
// Max long data type positive value = (32 bit value / 2) - 1 = (4294967296 / 2) - 1
// = 2147483647
// secs in a year = 24hrs * 60Min * 60sec * 365.25 days = 31557600 secs
// No of years long data type can represent = Max long data type positive value/secs in a year
// = 2147483647 / 31557600 = 68 years
// Therefore Max year a long data type can represent since midnight(00:00:00), January 1, 1970
// = 1970 + 68 = 2038 AD
// By 2038AD i should have retired! Have u?
class MCCTRDLLCLASS CCurrentMsTime
{
public:
// Update Current Time
static void UpdateCurrentTime();
// get current time
static LONGLONG GetCurrentTime();
// get time in seconds
static double CalTimeSpanInSec(LONGLONG ullMsTime);
// get time in minutes
static double CalTimeSpanInMin(LONGLONG ullMsTime);
// get time in hours
static double CalTimeSpanInHr(LONGLONG ullMsTime);
private:
// private constructor, this class should not be instantiated
CCurrentMsTime();
// default destructor
virtual ~CCurrentMsTime();
// Current Time
static LONGLONG m_lCurrentTime;
};
#endif // !defined(AFX_CURRENTMSTIME_H__008B9E67_97A4_4B6E_A2DE_9EFA119208E3__INCLUDED_)