//获取系统当前时间
#include <stdio.h>
#include <time.h>
void system_curTime(struct tm *timtinfo) {
time_t rawtime;
time(&rawtime);//get current time
timtinfo = localtime(&rawtime);
printf("current time is:%s\n", asctime(timtinfo));
printf("%04x%02x%02d%02x%02x%02x \n", 1900 + timtinfo->tm_year, 1 + timtinfo->tm_mon,
timtinfo->tm_mday, timtinfo->tm_hour, timtinfo->tm_min, timtinfo->tm_sec);
}
int main() {
struct tm timtinfo;
system_curTime(&timtinfo);
// int time = (int)timtinfo;
// printf("time = %d\n", time);
return 0;
}
这是我给出的获取系统当前时间差值,现在要求如图红框所示:
那我该如何计算两个时间BCD码的秒数之差呢?
仅供参考:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
unsigned int iv,i;
unsigned char BCD[5];//定长10位BCD码
unsigned char sv[11];
void main() {
iv=123456789;//最大10位无符号正整数
//INT2BCD
sprintf(sv,"%010u",iv);
for (i=0;i<10;i+=2) {
BCD[i/2]=(sv[i]<<4)|(sv[i+1]&0x0F);
}
printf("BCD=%02x%02x%02x%02x%02x\n",BCD[0],BCD[1],BCD[2],BCD[3],BCD[4]);
//BCD2INT
for (i=0;i<10;i+=2) {
sv[i]='0'|(BCD[i/2]>>4);
sv[i+1]='0'|(BCD[i/2]&0x0F);
}
sscanf(sv,"%010u",&iv);
printf("iv=%010u\n",iv);
getch();
}