⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ysdatetime.h

📁 电力故障信息采集,主要是针对南自的保护装置,这个程序用在Linux操作系统下
💻 H
字号:
#ifndef __YS_DATE_TIME_H__#define __YS_DATE_TIME_H__#include <time.h>#include "YsString.h"class YsDateTime;class YsDate{  public:    YsDate()    {      m_year=m_month=m_day=0;    }    YsDate(int y,int m,int d)    {      m_year = y;      m_month = m;      m_day = d;    }    ~YsDate(){};    int year()		{return m_year;};    int month()		{return m_month;};    int day()		{return m_day;};    YsDate& operator=(const YsDate &d)    {      memcpy(this, &d, sizeof(d));return *this;    };    static YsDate currentDate()    {      YsDate d;      struct  tm *t;      time_t now;      time(&now);      t = localtime(&now);      d.m_year = 1900+t->tm_year;      d.m_month=1+t->tm_mon;      d.m_day=t->tm_mday;      return d;    }    int m_year,m_month,m_day;};typedef YsDate QDate;class YsTime{  public:    YsTime()    {      m_hour=m_minute=m_second=m_msecond=0;    }    YsTime(int h,int m,int s=0, int ms=0)    {      m_hour=h;      m_minute=m;      m_second=s;      m_msecond=ms;    }    YsTime(time_t* pt)    {      tm *t;      t = localtime(pt);      m_hour=t->tm_hour;      m_minute=t->tm_min;      m_second=t->tm_sec;      m_msecond=0;    }    ~YsTime(){};    int hour()	{return m_hour;}    int minute(){return m_minute;}    int second(){return m_second;}    int msec()	{return m_msecond;}    YsTime& operator=(const YsTime &t)    {      memcpy(this, &t, sizeof(t));return *this;    };    static YsTime currentTime()    {      YsTime tt;      struct  tm *t;      time_t now;      time(&now);      t = localtime(&now);      tt.m_hour=t->tm_hour;      tt.m_minute=t->tm_min;      tt.m_second=t->tm_sec;      tt.m_msecond=0;      return tt;    }    int m_hour,m_minute,m_second,m_msecond;};typedef YsTime QTime;class YsDateTime{  public:    YsDateTime(){};    YsDateTime(const YsDate &d)    {      m_date = d;    }    YsDateTime(const YsDate &d, const YsTime &t)    {      m_date = d;      m_time = t;    }    YsDateTime(const YsDateTime &dt)    {      *this = dt;    }    YsDateTime& operator=(const YsDateTime &dt)    {      m_date = dt.m_date;      m_time = dt.m_time;return *this;    }		YsDateTime addYears(int years)	{		YsDateTime dt=*this;		dt.m_date.m_year += years;		return dt;	}		YsDateTime addMonths(int month)	{		YsDateTime dt=*this;		dt.m_date.m_month += month;		return dt;	}		YsDateTime addDays(int days)	{		YsDateTime dt=*this;		dt.m_date.m_day += days;		return dt;	}		YsDateTime addHours(int hours)	{		YsDateTime dt=*this;		dt.m_time.m_hour += hours;		return dt;	}		YsDateTime addMinutes(int minutes)	{		YsDateTime dt=*this;		dt.m_time.m_minute += minutes;		return dt;	}		YsDateTime addSecs(int secs)	{		YsDateTime dt=*this;		dt.m_time.m_second += secs;		return dt;	}    YsString toString(YsString fmt)//yyyyMMddhhmmsszzz    {      YsString s=fmt;      s.replace("yyyy",toStr("yyyy"));      s.replace("MM",toStr("MM"));      s.replace("dd",toStr("dd"));      s.replace("hh",toStr("hh"));      s.replace("mm",toStr("mm"));      s.replace("ss",toStr("ss"));      s.replace("zzz",toStr("zzz"));      return s;    }    //static    static YsDateTime currentDateTime()    {      YsDateTime dt;      struct  tm *t;      time_t now;	  ::time(&now);      t = localtime(&now);      dt.m_date.m_year = 1900+t->tm_year;      dt.m_date.m_month=1+t->tm_mon;      dt.m_date.m_day=t->tm_mday;      dt.m_time.m_hour=t->tm_hour;      dt.m_time.m_minute=t->tm_min;      dt.m_time.m_second=t->tm_sec;      dt.m_time.m_msecond=0;      return dt;    }    int secsTo(YsDateTime &other)    {      time_t t1,t2;      tm tm1,tm2;      tm1.tm_year		= m_date.m_year;      tm1.tm_mon		= m_date.m_month;      tm1.tm_mday		= m_date.m_day;      tm1.tm_hour		= m_time.m_hour;      tm1.tm_min		= m_time.m_minute;      tm1.tm_sec		= m_time.m_second;      tm1.tm_year		= other.m_date.m_year;      tm1.tm_mon		= other.m_date.m_month;      tm1.tm_mday		= other.m_date.m_day;      tm1.tm_hour		= other.m_time.m_hour;      tm1.tm_min		= other.m_time.m_minute;      tm1.tm_sec		= other.m_time.m_second;      t1 = mktime(&tm1);      t2 = mktime(&tm2);      int secs=(int)difftime(t2,t1);return secs;    }    bool operator<(YsDateTime &other)    {      return secsTo(other)>0;    }    bool operator>(YsDateTime &other)    {      return secsTo(other)<0;    }    bool operator<=(YsDateTime &other)    {      return secsTo(other)>=0;    }    bool operator>=(YsDateTime &other)    {      return secsTo(other)<=0;    }    bool operator==(YsDateTime &other)    {      return secsTo(other)==0;    }    bool operator!=(YsDateTime &other)    {      return secsTo(other)!=0;    }    YsDate date(){return m_date;}    YsTime time(){return m_time;}    YsDate m_date;    YsTime m_time;  private:    YsString toStr(YsString fmt)    {      int len=2;      int i=0;      if(fmt == "yyyy")      {        len=4;        i=m_date.m_year;      }      else if(fmt == "MM")        i=m_date.m_month;      else if(fmt == "dd")        i=m_date.m_day;      else if(fmt == "hh")        i=m_time.m_hour;      else if(fmt == "mm")        i=m_time.m_minute;      else if(fmt == "ss")        i=m_time.m_second;      else if(fmt == "zzz")      {        len=3;        i=m_time.m_msecond;      }      fmt.sprintf("%d",i);      while(fmt.length() < len)        fmt = "0"+fmt;      return fmt;    }};typedef YsDateTime QDateTime;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -