需要做壹些合理的假設:
1 輸入時間采用這樣的格式 yyyy-mm-dd hh:mm:ss 即年月日.時分秒
2 系統時間是指本地(本時區的時間)
基於這些,代碼如下:
#include?<time.h>#include?<stdio.h>
#include?<stdlib.h>
int?main()
{
char?Time[256]?=?"";
printf("Please?input?a?time?in?this?format?yyyy-mm-dd?hh:mm:ss:\n");
scanf("%s",Time);
unsigned?int?year,mon,day,hour,min,sec;
sscanf(Time,"%d-%d-%d?%d:%d:%d",&year,&mon,&day,&hour,&min,&sec);
time_t?timep;
struct?tm?*p;
time(&timep);//獲取當前時間
p?=?localtime(&timep);?//取得當地時間
unsigned?int?dayin,daysys,tickin,ticksys;
dayin?=?year*10000+mon*100+day;
daysys?=?p->tm_year*10000+p->tm_mon*100+p->tm_mday;
if(dayin?>?daysys)?{
printf("%s?is?big\n",Time);
return?0;
}else?if(dayin<daysys)?{
printf("%d-%d-%d?%d:%d:%d?is?big\n",
p->tm_year,p->tm_mon,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
return?0;
}
//日期相等
tickin?=?hour*3600+min*60+sec;
ticksys?=?p->tm_hour*3600+p->tm_min*60+p->tm_sec;
if(tickin>ticksys){
printf("%s?is?big\n",Time);
return?0;
}else{
printf("%d-%d-%d?%d:%d:%d?is?big\n",
p->tm_year,p->tm_mon,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
return?0;
}
//時間也相等
printf("time?is?equal!\n");
return?0;
}