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

📄 vdatetime.cpp

📁 otl简单包装实现类,对数据库进行操作的,简单易用.
💻 CPP
字号:
/***************************************************************************                          vdatetime.cpp  -  description                             -------------------    begin                : 2005-01-05    copyright            : (C) 2005 by LiuZhong    email                : easeliu@vip.sina.com.cn ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/#include "vdatetime.h"//--------------------------------------------------------------------------------------------------DateTime::DateTime(){	m_DT = time(NULL);}DateTime::DateTime(const time_t DT){	m_DT = DT;}DateTime::DateTime(const char* DT){    struct tm tt;    int Len = strlen(DT);    long dt=0;    string st;    switch(Len){	    case 6:	    	dt = atol(DT);	        m_DT = (dt/10000*60+(dt/100%100))*60+(dt%100);	    	break;	    case 8:	        if(DT[2]==':'&&DT[5]==':'){               dt = (((DT[0]-'0')*10L+(DT[1]-'0'))*60L+((DT[3]-'0')*10L+(DT[4]-'0')))*60+(DT[6]-'0')*10L+(DT[7]-'0');               m_DT = dt;         	}            else{			    st = DT;			    st += "000000";                strptime(st.c_str(),"%Y%m%d%H%M%S",&tt);                m_DT = mktime(&tt);			}			break;	    case 10:	    	st = DT;	        st += " 00:00:00";	        strptime(st.c_str(),"%Y-%m-%d %H:%M:%S",&tt);	        m_DT = mktime(&tt);	        break;	    case 14:	        strptime(DT,"%Y%m%d%H%M%S",&tt);	        m_DT = mktime(&tt);	        break;	    case 15:	    	if(DT[8]=='-') strptime(DT,"%Y%m%d-%H%M%S",&tt);	        else strptime(DT,"%Y%m%d %H%M%S",&tt);	        m_DT = mktime(&tt);	        break;	    case 19:	    	strptime(DT,"%Y-%m-%d %H:%M:%S",&tt);	        m_DT = mktime(&tt);	        break;	}}DateTime::DateTime(const struct tm* DT){    m_DT = mktime((struct tm*)DT);}DateTime::DateTime(long Year,long Month,long Day){	struct tm t;	t.tm_year = Year-1900;	t.tm_mon = Month - 1;	t.tm_mday = Day;	t.tm_hour = 0;	t.tm_min = 0;	t.tm_sec = 0;	m_DT = mktime(&t);}DateTime::DateTime(long Hour,long Minute,long Second,long MSecond){     m_DT = (Hour*60+Minute)*60+Second;}DateTime::DateTime(long Year,long Month,long Day,long Hour,long Minute,long Second){	struct tm t;	t.tm_year = Year-1900;	t.tm_mon = Month - 1;	t.tm_mday = Day;	t.tm_hour = Hour;	t.tm_min = Minute;	t.tm_sec = Second;	m_DT = mktime(&t);}time_t DateTime::AddDays(long Days){     m_DT += (Days*24L*60*60);     return m_DT;}time_t DateTime::AddSeconds(long Seconds){     if(m_DT<86400) m_DT = ((m_DT+Seconds)%86400);     else m_DT += Seconds;     return m_DT;}time_t DateTime::DT(){    return m_DT;}long DateTime::Year(){	if(m_DT<86400){     	return 0;	}	else{		struct tm tt;    	localtime_r(&m_DT,&tt);    	return tt.tm_year+1900;  	}}long DateTime::Month(){	if(m_DT<86400){        return 0;	}	else{		struct tm tt;    	localtime_r(&m_DT,&tt);    	return tt.tm_mon+1;  	}}long DateTime::Day(){	if(m_DT<86400){	  	return 0;	}	else{		struct tm tt;   		localtime_r(&m_DT,&tt);    	return tt.tm_mday;  	}}long DateTime::Hour(){	if(m_DT<86400){	  	return m_DT/3600;	}	else{		struct tm tt;   		localtime_r(&m_DT,&tt);	    return tt.tm_hour;	}}long DateTime::Minute(){	if(m_DT<86400){        return (m_DT%3600)/60;	}	else{		struct tm tt;    	localtime_r(&m_DT,&tt);	    return tt.tm_min;    }}long DateTime::Second(){	if(m_DT<86400){	  	return m_DT%60;	}	else{		struct tm tt;  		localtime_r(&m_DT,&tt);    	return tt.tm_sec;    }}long DateTime::WeekDay(){	if(m_DT<86400){	  	return 0;	}	else{		struct tm tt;   		localtime_r(&m_DT,&tt);	    return tt.tm_wday;	 }	 }long DateTime::YearDay(){	if(m_DT<86400){	  	return 0;	}	else{		struct tm tt;		localtime_r(&m_DT,&tt);		return tt.tm_yday;	}}long DateTime::Date(){	string dstr=Format("%Y%m%d");	return atol(dstr.c_str());}long DateTime::Time(){	if(m_DT<86400){     	return (m_DT/3600*10000+(m_DT%3600)/60*100+(m_DT%60));	}	else{	    string tstr=Format("%H%M%S");    	return atol(tstr.c_str());    } }string DateTime::StdDateTime(){    return Format("%Y-%m-%d %H:%M:%S");}string DateTime::StdDate(){   	return Format("%Y-%m-%d");}string DateTime::StdTime(){	char tstr[10];	if(m_DT<86400){	    sprintf(tstr,"%02d:%02d:%02d", m_DT/3600,(m_DT%3600)/60,(m_DT%60));     	return tstr;	}	else{    	return Format("%H:%M:%S"); 	}}string DateTime::EurDateTime(){    return Format("%d.%m.%Y %H.%M.%S");}string DateTime::EurDate(){    return Format("%d.%m.%Y");}string DateTime::EurTime(){	char tstr[10];	if(m_DT<86400){	    sprintf(tstr,"%02d.%02d.%02d", m_DT/3600,(m_DT%3600)/60,(m_DT%60));     	return tstr;	}	else{    	return Format("%H.%M.%S"); 	}}string DateTime::TWDateTime(){    return Format("%Y/%m/%d %H:%M:%S");}string DateTime::TWDate(){    return Format("%Y/%m/%d");}string DateTime::TWTime(){	char tstr[10];	if(m_DT<86400){	    sprintf(tstr,"%02d:%02d:%02d", m_DT/3600,(m_DT%3600)/60,(m_DT%60));     	return tstr;	}	else{    	return Format("%H:%M:%S"); 	}}string DateTime::WestDateTime(){    return Format("%m/%d/%Y %H:%M:%S");}string DateTime::WestDate(){    return Format("%m/%d/%Y");}string DateTime::WestTime(){	char tstr[10];	if(m_DT<86400){	    sprintf(tstr,"%02d:%02d:%02d", m_DT/3600,(m_DT%3600)/60,(m_DT%60));     	return tstr;	}	else{		return Format("%H:%M:%S");	}}string DateTime::LongDateTime(){	return Format("%Y%m%d-%H%M%S");}string DateTime::LongDate(){	return Format("%Y%m%d");}string DateTime::ShortDateTime(){    return Format("%y%m%d-%H%M%S");}string DateTime::ShortDate(){    return Format("%y%m%d");}string DateTime::ShortTime(){	char tstr[10];	if(m_DT<86400){	    sprintf(tstr,"%02d%02d%02d", m_DT/3600,(m_DT%3600)/60,(m_DT%60));     	return tstr;	}	else{    	return Format("%H%M%S"); 	}}string DateTime::Format(string Fmt){    char tmstr[64]; 	struct tm tt;  	localtime_r(&m_DT,&tt);    strftime(tmstr,64,Fmt.c_str(),&tt);    return tmstr;}//--------------------------------------------------------------------------------------------------

⌨️ 快捷键说明

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