法1
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int is_leap(int year)
{
if(year%4==0 && year%100 || year %400==0)
return 1;
return 0;
}
int get_days(int year,int month)//求某月多少天
{
if(month == 2) return months[month] + is_leap(year);
return months[month];
}
int main()
{
int year,day;
cin>>year>>day;
int days = 0;
for(int i = 0; i<13; i++)
{
days += get_days(year,i);
if(days>=day)
{
cout<<i<<endl;
int t = get_days(year,i)-(days-day);
cout<<t<<endl;
break;
}
}
}
法2
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int is_leap(int year)
{
if(year%4==0 && year%100 || year %400==0)
return 1;
return 0;
}
int get_days(int year,int month)//求某月多少天
{
if(month == 2) return months[month] + is_leap(year);
return months[month];
}
int main()
{
int year,d;
cin>>year>>d;
for(int i = 1; i<=12; i++)
for(int j = 1; j<=get_days(year,i); j++)
{
if(--d==0)
{
printf("%d\n%d\n",i,j);
return 0;
}
}
return 0;
}