给定一个年份y和一个整数d,问这一年的第d天是几月几日?

标题
日期计算

类别
流程控制

时间限制
1S

内存限制
256Kb

问题描述
给定一个年份y和一个整数d,问这一年的第d天是几月几日?
注意闰年的2月有29天,且满足下面条件之一的是闰年:
1) 年份是4的整数倍,而且不是100的整数倍;
2) 年份是400的整数倍

输入说明
输入包含两个整数y和d,y表示年份,年份在1900到2018之间(包含1900和2018)。 d表示这一年的第几天,d在1至365之间。

输出说明
在一行输出两个整数,分别表示答案的月份和日期。

输入样例
2015 80

输出样例
3 21

供参考:

#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;
}