用c语言比较当前系统日期与我输入的日期大小怎么写代码?
发布网友
发布时间:2022-05-20 19:48
我来回答
共2个回答
热心网友
时间:2023-11-18 22:09
#include <time.h>
#include <stdio.h>
void main(void)
{
time_t timep;
struct tm *p;
int in_time[3];
intnow_time[3];
int i;
printf("输入年-月-日: ");
scanf("%d-%d-%d", &in_time[0], &in_time[1], &in_time[2]);
time (&timep);
p=gmtime(&timep);
now_time[0]=1900+p->tm_year;
now_time[1]=1+p->tm_mon;
now_time[2]=p->tm_mday;
for(i=0;i<3;i++)
if(in_time[i]>now_time[i])
{
printf("你输入的日期大\n");
break;
}
else if(in_time[i]<now_time[i])
{
printf("你输入的日期小\n");
break;
}
else
continue;
if(i==3)
printf("两个日期一样大\n");
//printf("%d\n",p->tm_sec); /*获取当前秒*/
//printf("%d\n",p->tm_min); /*获取当前分*/
//printf("%d\n",8+p->tm_hour);/*获取当前时,这里获取西方的时间,刚好相差八个小时*/
//printf("%d\n",p->tm_mday);/*获取当前月份日数,范围是1-31*/
//printf("%d\n",1+p->tm_mon);/*获取当前月份,范围是0-11,所以要加1*/
//printf("%d\n",1900+p->tm_year);/*获取当前年份,从1900开始,所以要加1900*/
//printf("%d\n",p->tm_yday); /*从今年1月1日算起至今的天数,范围为0-365*/
}
追问在这个基础上如果我想在输入的日期大于当前日期的时候让它循环输入直到输入的日期小于当前日期要怎么做?
追答设个flag,当小于的时候为0
while(flag)
{
//除了变量定义外的语句
}
热心网友
时间:2023-11-18 22:09
#include <stdio.h>
#include <time.h>
int strtotime(char datetime[]) //时间字符串转时间戳
{
struct tm tm_time;
int unixtime;
strptime(datetime, "%Y-%m-%d %H:%M:%S", &tm_time);
unixtime = mktime(&tm_time);
return unixtime;
}
//当前时间戳
time_t curTime;
time(&curTime);
//比较
if(curTime > strtotime(/*这里写时间字符串*/)){}追问这个直接粘贴就可以吗?
追答不行,//当前时间戳下面的都要放main函数里