1 #include
2 #include
3 #include
4 #include
5 /***************************************************************************6 *函数名称:Char2Bcd7 *函数介绍:字符串转BCD8 *输入参数:-buf:指向字符串9 *输出参数:无10 *返回值 :转换后的双精度值11 *修改历史:12 ***************************************************************************/
13 char Char2Bcd(chari_cHexData)14 {15 chari;16 i=((i_cHexData%100)/10)*16+(i_cHexData%10);17 returni;18 }19
20 /***************************************************************************21 *函数名称:Get_BCDTime722 *函数介绍:转换为BCD码格式时间23 *输入参数:-*time:24 *输出参数:无25 *返回值 :无26 *修改历史:27 ***************************************************************************/
28 void Get_BCDTime7(time_t i_tTime,char*o_cpBcdTime)29 {30 struct tm *time;31 time=localtime(&i_tTime);32 o_cpBcdTime[0]=Char2Bcd((time->tm_year+1900)/100);33 o_cpBcdTime[1]=Char2Bcd((time->tm_year+1900)%100);34 o_cpBcdTime[2]=Char2Bcd(time->tm_mon+1);35 o_cpBcdTime[3]=Char2Bcd(time->tm_mday);36 o_cpBcdTime[4]=Char2Bcd(time->tm_hour);37 o_cpBcdTime[5]=Char2Bcd(time->tm_min);38 o_cpBcdTime[6]=Char2Bcd(time->tm_sec);39 }40
41 /***************************************************************************42 *函数名称:Get_CurBCDTime643 *函数介绍:转换为BCD码格式时间44 *输入参数:-*time:45 *输出参数:无46 *返回值 :无47 *修改历史:48 ***************************************************************************/
49 void Get_BCDTime6(time_t i_tTime,char*o_cpBcdTime)50 {51 struct tm *time;52 time=localtime(&i_tTime);53 o_cpBcdTime[0]=(unsigned char)((((time->tm_year-100)/10)<<4)|((time->tm_year-100)%10));54 o_cpBcdTime[1]=(unsigned char)((((1+time->tm_mon)/10)<<4)|((1+time->tm_mon)%10));55 o_cpBcdTime[2]=(unsigned char)((((time->tm_mday)/10)<<4)|((time->tm_mday)%10));56 o_cpBcdTime[3]=(unsigned char)((((time->tm_hour)/10)<<4)|((time->tm_hour)%10));57 o_cpBcdTime[4]=(unsigned char)((((time->tm_min)/10)<<4)|((time->tm_min)%10));58 o_cpBcdTime[5]=(unsigned char)((((time->tm_sec)/10)<<4)|((time->tm_sec)%10));59 }60
61 /***************************************************************************62 *函数名称:Get_CurBCDTime663 *函数介绍:获取当前BCD码格式时间64 *输入参数:-*time:65 *输出参数:无66 *返回值 :无67 *修改历史:add by lianzihao 2016-09-1368 ***************************************************************************/
69 void Get_CurBCDTime6(char*o_cpBcdTime)70 {71 time_t lt=0;72 lt =time(NULL);73 struct tm * pCurTime = localtime(<);74 o_cpBcdTime[0]=(unsigned char)((((pCurTime->tm_year-100)/10)<<4)|((pCurTime->tm_year-100)%10));75 o_cpBcdTime[1]=(unsigned char)((((1+pCurTime->tm_mon)/10)<<4)|((1+pCurTime->tm_mon)%10));76 o_cpBcdTime[2]=(unsigned char)((((pCurTime->tm_mday)/10)<<4)|((pCurTime->tm_mday)%10));77 o_cpBcdTime[3]=(unsigned char)((((pCurTime->tm_hour)/10)<<4)|((pCurTime->tm_hour)%10));78 o_cpBcdTime[4]=(unsigned char)((((pCurTime->tm_min)/10)<<4)|((pCurTime->tm_min)%10));79 o_cpBcdTime[5]=(unsigned char)((((pCurTime->tm_sec)/10)<<4)|((pCurTime->tm_sec)%10));80 }81 /***************************************************************************82 *函数名称:Get_CurBCDTime783 *函数介绍:获取当前BCD码格式时间84 *输入参数:-*time:85 *输出参数:无86 *返回值 :无87 *修改历史:88 ***************************************************************************/
89 void Get_CurBCDTime7(char*o_cpBcdTime)90 {91 time_t tt;92 struct tm *curtime;93 time(&tt);94 curtime=localtime(&tt);95 o_cpBcdTime[0]=Char2Bcd((curtime->tm_year+1900)/100);96 o_cpBcdTime[1]=Char2Bcd((curtime->tm_year+1900)%100);97 o_cpBcdTime[2]=Char2Bcd(curtime->tm_mon+1);98 o_cpBcdTime[3]=Char2Bcd(curtime->tm_mday);99 o_cpBcdTime[4]=Char2Bcd(curtime->tm_hour);100 o_cpBcdTime[5]=Char2Bcd(curtime->tm_min);101 o_cpBcdTime[6]=Char2Bcd(curtime->tm_sec);102 }103
104 #define LEN 7
105 int main(void)106 {107 int i = 0;108 char l_arrBcdtime[LEN] ={0};109 Get_CurBCDTime7(l_arrBcdtime);110 printf("Get_CurBCDTime7 :");111 for(i=0;i
116 Get_CurBCDTime6(l_arrBcdtime);117
118 printf("\nGet_CurBCDTime6 :");119 for(i=0;i
运行结果: