已知今天的日期(包含年、月、日),编程求得明天的日期(年、月、日)
答案:2 悬赏:20
解决时间 2021-02-23 06:18
- 提问者网友:花之森
- 2021-02-22 09:11
我现在只会C语言,别的都还会,前面在论坛里面看见过,一样的题目,但是超出了我学习的范围,不知道那位能帮忙写一个C语言的代码?谢谢
最佳答案
- 二级知识专家网友:如果这是命
- 2021-02-22 09:30
#include
#include// 包含setw() 的头文件, c++
#include
int leap(int year)//判断是否闰年
{
int leap;
if((year%4==0 && year %100!=0)|| year %400==0)leap=1;
else leap=0;
return leap;
}
int main()
{
int year,month,day;
int months[12]={31,28,31,30,31,30,31,31,30,31,30,31};
cout<<" 输入今天的年月日:"<
cin>>year;
cin>>month;
cin>>day;
if(leap(year)) months[1]=29;
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:{
if(day==31){month++;day=1;}
else day++;
break;}
case 4:
case 6:
case 9:
case 11:{
if(day==30){month++;day=1;}
else day++;break;}
case 2:{
if(day==months[1]){month++;day=1;}
else day++;break;}//对二月特殊判断
case 12:{
if(day==31){year++;month=1;day=1;}
else day++;break;
}//对12月特殊判断,如果是31号,年也应加1
}
cout<<" 明天的年月日为:"<
cout<
cout<
return 0;
}
#include
#include
int leap(int year)//判断是否闰年
{
int leap;
if((year%4==0 && year %100!=0)|| year %400==0)leap=1;
else leap=0;
return leap;
}
int main()
{
int year,month,day;
int months[12]={31,28,31,30,31,30,31,31,30,31,30,31};
cout<<" 输入今天的年月日:"<
cin>>month;
cin>>day;
if(leap(year)) months[1]=29;
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:{
if(day==31){month++;day=1;}
else day++;
break;}
case 4:
case 6:
case 9:
case 11:{
if(day==30){month++;day=1;}
else day++;break;}
case 2:{
if(day==months[1]){month++;day=1;}
else day++;break;}//对二月特殊判断
case 12:{
if(day==31){year++;month=1;day=1;}
else day++;break;
}//对12月特殊判断,如果是31号,年也应加1
}
cout<<" 明天的年月日为:"<
}
全部回答
- 1楼网友:爱情是怎么炼成的
- 2021-02-22 10:39
#include <stdio.h>
struct date
{
int year;
int month;
int day;
};
bool isleapyear(date da)
{
if(da.year%4 == 0 && da.year%100 != 0 || da.year%400 == 0)
return true;
else
return false;
}
date getnextday(date da)
{
date nextdate;
nextdate.day = da.day;
nextdate.month = da.month;
nextdate.year = da.year;
int day[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int sday = (isleapyear(da) && da.month == 2)? 29:day[da.month-1];
if(da.day + 1 > sday)
{
nextdate.month++;
}
nextdate.day = (nextdate.day + 1)%sday;
if(nextdate.month > 12)
{
nextdate.year++;
nextdate.month = 1;
}
return nextdate;
}
void scan(date *da)
{
printf("(yyyy/mm/dd) :");
scanf("%d/%d/%d",&(da->year),&(da->month),&(da->day));
}
void print(date da)
{
printf("%d/%d/%d\n",da.year,da.month,da.day);
}
void main()
{
date now;
scan(&now);
print(getnextday(now));
}
确保今天的输入日期正确
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯