求日期+1后的新日期
#include <iostream>
using namespace std;
int n,b,b1,r,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
cin>>n>>b>>r;
if((n%100!=0&&n%4==0)||(n%400==0))
{
a[1]=29;
}
b1=a[b-1];
if(r<b1)
{
r++;cout<<n<<"-"<<b<<"-"<<r;
return 0;
}
if(r==b1)
{
if(b<12)
{
b++,r=1;cout<<n<<"-"<<b<<"-"<<r;
return 0;
}
if(b==12)
{
n++,b=1,r=1;cout<<n<<"-"<<b<<"-"<<r;
return 0;
}
}
if(r>b1)
{
cout<<"您输入的不是一个正确的日期";//界面友好
}
return 0;
}
数组法,存日期
更简便
先判断日期是否合法,合法的话,日期+1,然后跟数组a进行比较,如果大于a[b-1],就把b+1,如果b+1大于12,就把n+1
参考如下:
#include <iostream>
using namespace std;
int n,b,b1,r,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
cin>>n>>b>>r;
if((n%100!=0&&n%4==0)||(n%400==0))
{
a[1]=29;
}
if(b>12 || b<1 || r<1 || r>a[b-1])
cout << "输入的日期不合法"<<endl;
else
{
r++; //日期加1
if(r > a[b-1])
{
r = 1;
b++; //月份+1
}
if(b>12)
{
n++; //年+1
b = 1;
}
cout << n <<"-"<<b<<"-"<<r<<endl;
}
return 0;
}