供参考:
#include<stdio.h>
int isLeap(int y)
{
return ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0));
}
int Getdaysofmonth(int y, int m)
{
int days[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
if (m == 2 && isLeap(y)) return days[m - 1] + 1;
return days[m - 1];
}
int main()
{
int y, d, m;
do {
//printf("请输入年份 天数:");
scanf("%d%d", &y, &d);
} while (y < 1900 || y > 2018 || d < 1 || d > 365);
for (m = 1; d > Getdaysofmonth(y, m) && m < 13; d -= Getdaysofmonth(y, m), m++);
//printf("%d年%d月%d日\n", y, m, d);
printf("%d %d", m, d);
return 0;
}