文章
4
粉丝
407
获赞
4
访问
37.4k
#include <iostream>
#include<cstdio>
using namespace std;
int f[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int n;
cin>>n;
while(n--)
{
int year,month,day,plus_day;
cin>>year>>month>>day>>plus_day;
//判断平年或闰年
if((year%4==0||year%400==0)&&(year%100!=0))
{
f[2]=29;
}
else f[2]=28;
//计算这一年的总天数
int sum=0;
for(int i=0;i<13;i++)
{
sum+=f[i];
}
//该日期是这一年的多少天
int ans=day;
for(int i=1;i<month;i++)
{
ans+=f[i];
}
ans+=plus_day;
//加上plus_day后,天数在/不在该年内
if(ans<=sum)
{
int j=1;
while(ans-f[j]>0){
ans-=f[j++];
}
printf("%04d-%02d-%02d\n",year,j,ans);
}
else{
int tmp=ans-sum;
int j=1;
while(tmp-f[j]>0){
tmp-=f[j++];
}
year+=1;
printf("%04d-%02d-%02d\n",year,j,tmp);
}
}
//cin>>n;
}
登录后发布评论
你新的一年是否判断它是否为闰年了?好像只有开始输入的那年判断了