203 lines
5.7 KiB
C
203 lines
5.7 KiB
C
|
|
/*********************************************************************
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: TCMTime.h ͨ<EFBFBD>õ<EFBFBD>ʱ<EFBFBD>䴦<EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Shanghai Baosight Software Co., Ltd.
|
|||
|
|
*
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩͨ<EFBFBD>õ<EFBFBD>ʱ<EFBFBD>䴦<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰʱ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-06-17 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* %USER%
|
|||
|
|
*********************************************************************/
|
|||
|
|
#ifndef TCMTIME_H_
|
|||
|
|
#define TCMTIME_H_
|
|||
|
|
|
|||
|
|
#include <string.h>
|
|||
|
|
#include <stdio.h>
|
|||
|
|
#include <string>
|
|||
|
|
#ifdef _WIN32
|
|||
|
|
# include <sys/timeb.h>
|
|||
|
|
# include <time.h>
|
|||
|
|
# include <Windows.h>
|
|||
|
|
#pragma warning (disable : 4996)
|
|||
|
|
#else
|
|||
|
|
# include <sys/time.h>
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
#ifdef _WIN32
|
|||
|
|
#define timezone _timezone
|
|||
|
|
#else
|
|||
|
|
#define timezone __timezone
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
using namespace std;
|
|||
|
|
|
|||
|
|
|
|||
|
|
const time_t TIMEMAX = 2147426047;
|
|||
|
|
namespace baosight{
|
|||
|
|
enum MonthsEnum
|
|||
|
|
{
|
|||
|
|
jan = 1,
|
|||
|
|
feb,
|
|||
|
|
mar,
|
|||
|
|
apr,
|
|||
|
|
may,
|
|||
|
|
jun,
|
|||
|
|
jul,
|
|||
|
|
aug,
|
|||
|
|
sep,
|
|||
|
|
oct,
|
|||
|
|
nov,
|
|||
|
|
dec
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/*********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD>: TCMTime
|
|||
|
|
* <EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: Shanghai Baosight Software Co., Ltd.
|
|||
|
|
* <EFBFBD><EFBFBD> ְ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩͨ<EFBFBD>õ<EFBFBD>ʱ<EFBFBD>䴦<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰʱ<EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-06-17 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
*********************************************************************/
|
|||
|
|
class TCMTime
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
TCMTime();
|
|||
|
|
TCMTime(time_t now);//ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
|
TCMTime(struct tm now);//ʹ<><CAB9>struct tm<74><6D><EFBFBD>г<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
|
TCMTime(const TCMTime& now);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
TCMTime(const string &str,string pattern="yyyyMMddhhmiss");
|
|||
|
|
public:
|
|||
|
|
~TCMTime();
|
|||
|
|
public:
|
|||
|
|
TCMTime& operator +(const long& second);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
TCMTime& operator -(const long& second);//<2F><>ȥһ<C8A5><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
TCMTime& operator =(const TCMTime &curTime);
|
|||
|
|
bool operator ==(const TCMTime &ComTime);
|
|||
|
|
bool operator !=(const TCMTime &ComTime);
|
|||
|
|
TCMTime& operator +=(const long& sec);//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
TCMTime& operator -=(const long& sec);//<2F><>ȥһ<C8A5><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
friend long operator -(TCMTime& t1,TCMTime&t2);//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳʱ<EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SetSystemTime
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> short
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-09-02 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
short SetSystemTime();//<2F><><EFBFBD><EFBFBD>ϵͳʱ<CDB3><CAB1>
|
|||
|
|
public:
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ǰʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1970<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetSec70
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> time_t
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-09-02 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
time_t GetSec70()const;//
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GetTimeOffset
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> int
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-09-02 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
int GetTimeOffset();//
|
|||
|
|
public:
|
|||
|
|
int Year(){return m_year;}//ȡ<><C8A1>
|
|||
|
|
int Month(){return m_month;}//ȡ<><C8A1>
|
|||
|
|
int Day(){return m_day;}//ȡ<><C8A1>
|
|||
|
|
int Hour(){return m_hour;}//ȡʱ
|
|||
|
|
int Minute(){return m_minute;}//ȡ<><C8A1>
|
|||
|
|
int Second(){return m_second;}//ȡ<><C8A1>
|
|||
|
|
public:
|
|||
|
|
string ToString(char* format=NULL);//ת<><D7AA><EFBFBD><EFBFBD>String
|
|||
|
|
time_t ToSec70();//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
public:
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ȡ<EFBFBD><EFBFBD>ǰʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰʱ<EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Now
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> baosight::TCMTime
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-09-02 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
static TCMTime Now();//
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ȡgtm<EFBFBD><EFBFBD>ǰʱ<EFBFBD><EFBFBD>
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> GTMNow
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> baosight::TCMTime
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-09-02 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
static TCMTime GTMNow();//
|
|||
|
|
static string ToString(time_t t,char* format=NULL);//<2F><>time_t<5F><74>ʽ<EFBFBD><CABD>ʱ<EFBFBD><CAB1>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>string<6E><67>ʽ
|
|||
|
|
static time_t ToSec70(string t);//<2F><>string<6E><67>ʽ<EFBFBD><CABD>ʱ<EFBFBD><CAB1>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>time_t
|
|||
|
|
public:
|
|||
|
|
/**********************************************************************
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SetTimeZone
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD> void
|
|||
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȡֵ<EFBFBD><EFBFBD>Χ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
* <EFBFBD>汾<EFBFBD><EFBFBD>ʷ
|
|||
|
|
* 1.0 2010-09-02 echo_li <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
|||
|
|
*
|
|||
|
|
**********************************************************************/
|
|||
|
|
void SetTimeZone();//
|
|||
|
|
void AddOneDay();//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
|
void SubOneDay();//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
|
private:
|
|||
|
|
void SetTime(struct tm TM);
|
|||
|
|
private:
|
|||
|
|
int m_year;
|
|||
|
|
MonthsEnum m_month;
|
|||
|
|
int m_day;
|
|||
|
|
int m_hour;
|
|||
|
|
int m_minute;
|
|||
|
|
int m_second;
|
|||
|
|
time_t m_sec70;
|
|||
|
|
private:
|
|||
|
|
const static int MAX_YEAR = 2038;
|
|||
|
|
const static int MAX_MONTH = 1;
|
|||
|
|
const static int MAX_DAY = 18;
|
|||
|
|
const static int MAX_HOUR = 19;
|
|||
|
|
const static int MAX_MINUTE = 14;
|
|||
|
|
const static int MAX_SECOND = 7;
|
|||
|
|
|
|||
|
|
const static int MIN_YEAR = 1970;
|
|||
|
|
const static int MIN_MONTH = 1;
|
|||
|
|
const static int MIN_DAY = 1;
|
|||
|
|
const static int MIN_HOUR = 0;
|
|||
|
|
const static int MIN_MINUTE = 0;
|
|||
|
|
const static int MIN_SECOND = 0;
|
|||
|
|
|
|||
|
|
const static int DAY_SECONDS = 86400;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
long operator -(TCMTime& t1,TCMTime&t2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif
|