常用函数-Time
2024-09-01 11:18:57
#pragma pack(push,1)
/*
在这中间定义的结构体,已单字节对齐
*/
#pragma pack(pop)
/************************************************************************
函数功能: 将时间time_t转化为YYYY-MM-DD hh:mm:ss
输入参数: time_t tTime -- 给定时间的标准time_t格式
输出参数: string& strTime -- 字符串
返回值 :
说明 :
************************************************************************/
void time2string(time_t tTime, string& strTime)
{
struct tm tmTime;
localtime_s(&tmTime, &tTime); char cTime[] = {'\n'};
_snprintf_s(cTime, sizeof(cTime)-,
"%04d-%02d-%02d %02d:%02d:%02d",
tmTime.tm_year + ,
tmTime.tm_mon + ,
tmTime.tm_mday,
tmTime.tm_hour,
tmTime.tm_min, tmTime.tm_sec);
strTime = cTime;
}
/*
用于tcp传输时间结构体
*/
typedef struct tagTimePack
{
unsigned short nYear;
unsigned char nMonth;
unsigned char nDay;
unsigned char nSer;
unsigned char nHour;
unsigned char nMinute;
unsigned char nSecond; std::string toString()
{
char buff[] = {'\0'};
_snprintf_s(buff, sizeof(buff)-,
"%04d-%02d-%02d %02d:%02d:%02d",
nYear, nMonth, nDay, nHour, nMinute, nSecond);
std::string str(buff);
return str;
}
} TimePack, * LPTimePack;
/************************************************************************
函数功能: 将时间的time_t的表示,转换为自定义的TimePack格式
输入参数: time_t tTime -- 给定时间的标准time_t格式
输出参数: const TimePack& timePack -- 给定时间的自定义TimePack格式
返回值 :
说明 :
************************************************************************/
void DPC::time2pack(time_t tTime, TimePack& timePack)
{
struct tm tmTime;
localtime_s(&tmTime, &tTime);
timePack.nYear = tmTime.tm_year + ;
timePack.nMonth = tmTime.tm_mon + ;
timePack.nDay = tmTime.tm_mday;
timePack.nHour = tmTime.tm_hour;
timePack.nMinute = tmTime.tm_min;
timePack.nSecond = tmTime.tm_sec;
};
/************************************************************************
函数功能: 将时间的自定义的TimePack表示,转换为标准的time_t格式
输入参数: const TimePack& timePack -- 给定时间的自定义TimePack格式 输出参数: time_t& tTime -- 时间的标准time_t格式
返回值 :
说明 :
************************************************************************/
void DPC::pack2time(const TimePack& timePack, time_t& tTime)
{
tm mytm;
mytm.tm_year = timePack.nYear - ;
mytm.tm_mon = timePack.nMonth - ;
mytm.tm_mday = timePack.nDay;
mytm.tm_hour = timePack.nHour;
mytm.tm_min = timePack.nMinute;
mytm.tm_sec = timePack.nSecond; // 如果在循环再频繁被调用,可考虑使用 dcs_mktime
tTime = mktime(&mytm);
};
//*************************************************************************
// 函数名称: OleTimeToTimet
// 返 回 值: time_t
// 参 数: const COleDateTime & oleTime
// 函数说明: COleDatetime转time_t
//*************************************************************************
time_t OleTimeToTimet(const COleDateTime& oleTime)
{
if (COleDateTime::valid != oleTime.GetStatus()){
return ;
} SYSTEMTIME systime;
oleTime.GetAsSystemTime(systime);
struct tm atm; atm.tm_sec = systime.wSecond;
atm.tm_min = systime.wMinute;
atm.tm_hour = systime.wHour;
atm.tm_mday = systime.wDay;
atm.tm_mon = systime.wMonth - ;
atm.tm_year = systime.wYear - ;
atm.tm_isdst = -; return mktime(&atm);
}
/************************************************************************
函数功能: 将时间的time_t的表示,转换为string格式
输入参数: time_t tTime -- 给定时间的标准time_t格式
输出参数: string& strTime --
返回值 :
说明 : 格式:YYYYMMDDHHMMSSmmm
************************************************************************/
void DPC::get_local_time(string& strTime)
{
SYSTEMTIME st;
GetLocalTime(&st); char cTime[] = { '\0' };
_snprintf_s(cTime, sizeof(cTime) - ,
"%04d%02d%02d%02d%02d%02d%03d",
st.wYear,
st.wMonth,
st.wDay,
st.wHour,
st.wMinute,
st.wSecond,
st.wMilliseconds); strTime = cTime;
}
最新文章
- 【转】ArrayList循环遍历并删除元素的常见陷阱
- 试验删除RAC(ORA10G)节点
- IOS 单例模式的写法
- 如何修改Eclipse在Debug时背景色
- JSU 2013 Summer Individual Ranking Contest - 5
- Linq连接数据库时,sql中的列为自增长,如何添加数据?
- MSP430常见问题之工作模式和功耗类
- aix 文件大小相关查询
- Topcoder SRM 656 (Div.1) 250 RandomPancakeStack - 概率+记忆化搜索
- (转)dedecms插件开发简明教程
- php和java静态变量用途的思考
- 一些常用的JS函数
- Fluent NHibernate
- windows任务计划程序路径设置
- java 多线程机制
- 201521123115《java程序设计》第9周学习总结
- 【Python3之字符编码】
- 关于kali linux 2.0的vmware tools的安装问题
- Azure系列2.1.4 —— BlobInputStream
- win7计划任务报该任务映像己损坏或己篡改