time_daysec=GetSecNumBetweenTwoYear(Time_frame_p->ucYear,1970,Time_frame_p->ucMonth,Time_frame_p->ucDay)+Time_frame_p->MsOneDay/1000;
/**********************************************************************
*功能描述: 计算任意两年之间的秒数
*输入参数: iFirstYear-减数
iSecondYear-被减数
*********************************************************************/
uint32_t GetSecNumBetweenTwoYear(uint16_t iFirstYear, uint16_t iSecondYear,uint16_t iMonth,uint16_t i_day)
{
uint32_t iTotalDays = 0; // 两年之间的总天数
uint16_t iTmpYear = 0; // 用作临时存放中间数据
bool moreyear=false;
uint16_t imonth_day=0;
// 输入参数检查, 保证减数小于被减数
if (iFirstYear > iSecondYear)
{
iTmpYear = iFirstYear;
iFirstYear = iSecondYear;
iSecondYear = iTmpYear;
}
// 计算总天数
iTotalDays = 0;
for (iTmpYear = iFirstYear; iTmpYear < iSecondYear; iTmpYear ++)
{
// 判断该年天数:1-能被4整除,但不能被100整除的是闰年; 2-能被400整除的是闰年
if ((0 == (iTmpYear%4) && 0!= (iTmpYear%100))||0==(iTmpYear%400))
{
iTotalDays += 366; // 闰年
moreyear=true;
}
else
{
iTotalDays += 365; // 平年
moreyear=false;
}
}
for(uint16_t imonth=1;imonth<iMonth;imonth++)
{
if(imonth==2)
{
if(moreyear)
imonth_day+=29;
else
imonth_day+=28;
}
else if(imonth==4||imonth==6||imonth==9||imonth==11)
{
imonth_day+=30;
}
else
{
imonth_day+=31;
}
}
return (iTotalDays+imonth_day+i_day-1) * 86400; // 总的秒数
}