计算现在的日期
已知一个参考日期,过了k天,问现在的日期是多少?
注
①用二维数组保存月的天数以及巧妙利用是否闰年的0,1来决定天数;
②用循环将天数转换为月数,月数转换为年数,避免了复杂的判断语句。
代码示例:
#include<iostream>
using namespace std;
int mon[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int leap(int year)//判断闰年
{
if(year%400==0||(year%100!=0&&year%4==0)) return 1;
else return 0;
}
int main()
{
int y,m,d,k,sum;
cin>>y>>m>>d>>k;
sum=d+k;
while(sum>mon[leap(y)][m])//比当前月份的天数大就继续循环
{
sum-=mon[leap(y)][m];
m++;//把天数转化为月数
if(m==13){//把月数转化为年数
m=m-12;
y++;
}
}
d=sum;
cout<<y<<' '<<m<<' '<<d<<endl;
return 0;
}