这个代码怎么改才能输出次年1月而不是13月,跪求改后代码

#include
using namespace std;
int nyear(int year)//判断是平年,还是润年

{

if(year%400==0||(year%4==0&&year%100!=0))

return 366;

else

return 365;

}

int nmonth(int m,int y) //根据年份和月份,判断是那一个月的天数

{

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)

return 31;

else if(nyear(y)==366&&m==2)

return 29;

else if(nyear(y)==365&&m==2)

return 28;

else

return 30;

}

int main()
{
int n,d,y,m;
cout<<"1900.1.1 monday"< cout cin>>n;
y=1900;m=1;d=1;
d=n%7;
string N[7]={"monday","monday","wednesday","thursday","friday","saturday","sunday"};
while(n>=365+nyear(y))
{
n=n-365-(nyear(y)-365);
y++;
}
while(n>=nmonth(m,y))
{
n-=nmonth(m,y);
m++;

}
cout<<y<<"."<<m<<"."<<n+1<<" "<<N[d];
system("pause"); 
return 0;

}

m++;
后面加上
y+= m / 12;
m = m % 12;