思路:闰年、平年的每个月份的天数分别存放在一个数组中。用sum记录总天数,各月份天数相加else sum+=run[i];
,直到总和大于等于给定的d,便可以得到月份month=i+1;
和具体天数day=d-sum;
。
#include <iostream>
using namespace std;
int main()
{
int y,d,month,day,sum=0;
int run[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int ping[12]={31,28,31,30,31,30,31,31,30,31,30,31};
cin >> y >> d;
if(y%400==0||(y%4==0&&y%100!=0))
{
for(int i=0;i<12;i++)
{
if(sum+run[i]>=d)
{
month=i+1;
day=d-sum;
break;
}
else sum+=run[i];
}
}
else
{
for(int i=0;i<12;i++)
{
if(sum+ping[i]>=d)
{
month=i+1;
day=d-sum;
break;
}
else sum+=ping[i];
}
}
cout << month << endl << day << endl;
return 0;
}