C语言编写 输入 年 月 日 ,输出这个日期的下一天的日期
2个回答
展开全部
利用C标准函数time,localtime,mktime来实现
先将输入的年月日放到tm结构中
用mktime()函数生成一个整数
用这个整数+86400(24*60*60)
然后再转换成日期就OK了
先将输入的年月日放到tm结构中
用mktime()函数生成一个整数
用这个整数+86400(24*60*60)
然后再转换成日期就OK了
追问
可以具体点吗?我还没学函数呢
追答
那你就用复杂一点的写法吧,
输入日期后,检查年是否是闰年,月是否是2月,注意闰年2月最大天数是29,平年28,其他月是30,31
先将日期加1
然后判断是否超出了当前月的最大天数
如果未超过,你很幸运,直接输出就好了!!
如果超过了,则日期=1,月+1
检查月是否超过了12
未超过,你很幸运,直接输出就好了!!
如果超过了,则月=1,年+1
输出结果!
给你思路,自己去写吧
展开全部
原创,经过VC编译可以运行。
#include <stdio.h>
main()
{ int year,month,day,flag=0;
m:
printf("Please input year month day:");
scanf("%d%d%d",&year,&month,&day);
if((year%4==0&&year%100!=0)||year%400==0)
flag=1;
if(month==2)
{ if((day==28&&flag==0)||(day==29&&flag==1))
{ day=1;
month++;
}
else if(day==29&&flag==0)
{ printf("There is not 29th February!\n",year);
goto m;
}
else day++;
}
else if(month==12)
{ if(day==31)
{ day=1;
month=1;
year++;
}
else day++;
}
else if(month==1||month==3||month==5||month==7||month==8||month==10)
{ if(day==31)
{ day=1;
month++;
}
else day++;
}
else
{ if(day==30)
{ day=1;
month++;
}
else day++;
}
printf("the next day is %4d %4d %4d\n",year,month,day);
}
#include <stdio.h>
main()
{ int year,month,day,flag=0;
m:
printf("Please input year month day:");
scanf("%d%d%d",&year,&month,&day);
if((year%4==0&&year%100!=0)||year%400==0)
flag=1;
if(month==2)
{ if((day==28&&flag==0)||(day==29&&flag==1))
{ day=1;
month++;
}
else if(day==29&&flag==0)
{ printf("There is not 29th February!\n",year);
goto m;
}
else day++;
}
else if(month==12)
{ if(day==31)
{ day=1;
month=1;
year++;
}
else day++;
}
else if(month==1||month==3||month==5||month==7||month==8||month==10)
{ if(day==31)
{ day=1;
month++;
}
else day++;
}
else
{ if(day==30)
{ day=1;
month++;
}
else day++;
}
printf("the next day is %4d %4d %4d\n",year,month,day);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询