C语言计算时间秒数差值

//获取系统当前时间
#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;
}

这是我给出的获取系统当前时间差值,现在要求如图红框所示:

img

img

那我该如何计算两个时间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();
}