tm与time_t转换函数

本文介绍了如何使用C语言进行时间的获取、转换以及比较的方法。包括如何通过localtime和mktime函数来处理时间数据,并提供了判断两个时间是否为同一天及是否为同一个生日的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

struct tm GetDayTime(time_t time)

{

struct tm * ptimeDetail;

struct tm timeDetail;

 

ptimeDetail = localtime ( &time ); 

memcpy(&timeDetail, ptimeDetail, sizeof(tm));

 

return timeDetail;

}

 

time_t GetDayTime(struct tm timeDetail)

{

time_t timeResult = 0;

 

if( (timeResult = mktime( &timeDetail )) != (time_t)-1 )//time_t mktime(strcut tm * timeptr);

//mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0秒算起至今的UTC时间所经过的秒数

{

return timeResult;

}

else

{

return 0;

}

}

 

bool IsSameDay(time_t time1, time_t time2)

{

struct tm * ptimeDetail;

struct tm timeDetail1;

struct tm timeDetail2;

 

ptimeDetail = localtime ( &time1 );  //函数返回本地日历时间

memcpy(&timeDetail1, ptimeDetail, sizeof(tm));

 

ptimeDetail = localtime ( &time2 ); 

memcpy(&timeDetail2, ptimeDetail, sizeof(tm));

 

if( timeDetail1.tm_year == timeDetail2.tm_year && timeDetail1.tm_mon == timeDetail2.tm_mon

&& timeDetail1.tm_mday == timeDetail2.tm_mday)

{

return true;

}

else

{

return false;

}

}

 

bool IsBirthday(time_t time1, time_t time2)

{

struct tm * ptimeDetail;

struct tm timeDetail1;

struct tm timeDetail2;

 

ptimeDetail = localtime ( &time1 ); 

memcpy(&timeDetail1, ptimeDetail, sizeof(tm));

 

ptimeDetail = localtime ( &time2 ); 

memcpy(&timeDetail2, ptimeDetail, sizeof(tm));

 

if( timeDetail1.tm_mon == timeDetail2.tm_mon && timeDetail1.tm_mday == timeDetail2.tm_mday)

{

return true;

}

else

{

return false;

}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值