打印日期

题目描述:
  给出年份y和这一年中的第n天,计算第n天是几月几号。
输入描述:
  输入包括两个整数y, n。
输出描述:
  可能有多组测试数据,对于每组测试数据,按yyyy-mm-dd的格式输出。
输入用例:

2000 3
2000 31
2000 40
2000 60
2000 61
2001 61

输出用例:

2000-01-03
2000-01-03
2000-02-09
2000-02-29
2000-03-01
2001-03-01

测试代码:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int y, n, i;
 6     int nMonthDays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 7 
 8     while (scanf("%d%d", &y, &n) != EOF)
 9     {
10         if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
11         {
12             nMonthDays[1] = 29;
13         }
14         else
15         {
16             nMonthDays[1] = 28;
17         }
18         i = 1;
19         while (n > nMonthDays[i - 1])
20         {
21             n -= nMonthDays[i - 1];
22             i++;
23         }
24         printf("%04d-%02d-%02d\n", y, i, n);
25     }
26     
27     return 0;
28 }

 

posted @ 2017-05-03 10:10  新生代黑马  阅读(181)  评论(0编辑  收藏  举报