#include <stdio.h> #include <stdlib.h> #define ISLEEP(x) ((x%100!=0&&x%4==0)||(x%400==0))?1:0 typedef struct Date { int year; int day; int month; }Date; int dayofMonth[13][2]={0,0,31,31,28,29,31,31,30,30,31,31,30,30,31,31,31,31,30,30,31,31,30,30,31,31}; int dayofYear[3001][13][31]={0}; Date nextDay(Date temp) { temp.day++; if(temp.day>dayofMonth[temp.month][ISLEEP(temp.year)]) { temp.day=1; temp.month++; if(temp.month>12) { temp.month=1; temp.year++; } } return temp; } int main() { Date temp,date; long cnt=0,thisYearday; int absday; temp.day=1; temp.month=1; temp.year=0; while(temp.year!=3001) { dayofYear[temp.year][temp.month][temp.day]=cnt; temp=nextDay(temp); cnt++; } while(scanf("%d%d",&date.year,&absday)!=EOF) { for(date.month=1,date.day=1;absday>1;absday--) { date=nextDay(date); } printf("%04d-%02d-%02d\n",date.year,date.month,date.day);//左边用0 填充 } }
机试教程:9 打印日期
最新推荐文章于 2024-04-01 08:07:25 发布