题目1186:打印日期
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2963
解决:1051
-
题目描述:
-
给出年分m和一年中的第n天,算出第n天是几月几号。
-
输入:
-
输入包括两个整数y(1<=y<=3000),n(1<=n<=366)。
-
输出:
-
可能有多组测试数据,对于每组数据,
按 yyyy-mm-dd的格式将输入中对应的日期打印出来。
-
样例输入:
-
2000 3 2000 31 2000 40 2000 60 2000 61 2001 60
-
样例输出:
-
2000-01-03 2000-01-31 2000-02-09 2000-02-29 2000-03-01 2001-03-01
//打印日期 #include<stdio.h> //月结余 int sumOfMonth[2][13] = {0,31,60,91,121,152,182,213,244,274,305,335,366, 0,31,59,90,120,151,181,212,243,273,304,334,365}; //判闰 int panr(int year) { return ((year%4==0 && year%100!=0)||year%400==0)?0:1; } int main(){ int year,day; int month,mday,temp; while(scanf("%d %d",&year,&day)!=EOF){ temp = panr(year); //月份 for(int i=1;i<13;i++) { if(day<=sumOfMonth[temp][i]){ month = i; break; } } //当月天 mday = day-sumOfMonth[temp][month-1]; printf("%04d-%02d-%02d\n",year,month,mday); } return 0; } //数组细节 /************************************************************** Problem: 1186 User: ranchothu Language: C++ Result: Accepted Time:10 ms Memory:1020 kb ****************************************************************/