#define TIME_START_YEAR 2000 //起始年份 typedef struct _TIME { short year; short month; short day; short hour; short minute; short second; }TIME, *LPTIME; double Time_to_Second(LPTIME tm) //时间转换成秒 { int year, month; unsigned long spanDay =0; double spandSecond = 0; for(year=TIME_START_YEAR; year<tm->year; year++)//隔年 { if(((year%4 == 0)&&(year%100 != 0)) || (year%400 == 0)) //闰年 spanDay += 366; else spanDay += 365; } for(month=1; month<tm->month; month++)//隔月 { if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month== 12) //大月 spanDay += 31; else if(month==4 || month==6 || month==9 || month== 11) //小月 spanDay += 30; else //2月 { if(((year%4 == 0)&&(year%100 != 0)) || (year%400 == 0)) //闰年 spanDay += 29; else spanDay += 28; } } spanDay += tm->day - 1; //隔天 spandSecond = spanDay * 24 * 60 * 60; //天数转换成秒 spandSecond += tm->hour * 60 * 60; //时转换成秒 spandSecond += tm->minute * 60; //分转换成秒 spandSecond += tm->second; //余秒 return (spandSecond); } double TimeSpan(LPTIME tms, LPTIME tme) { return Time_to_Second(tme) - Time_to_Second(tms); }