作为日期类入门后的基础题目,根据年月筛选日期之后,再逐步迭代月份,最后得出结果
#include <iostream> using namespace std; int gtmd(int y,int m) { int arr[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(m==2 && (y%4==0&&y%100!=0||y%400==0)) { return 29; } return arr[m]; } int main() { int y,d,m; while(scanf("%d%d",&y,&d)!=EOF) { m = 1; int md = gtmd(y,m); //获得该年该月的天数 while(d > md) //表示第几天不能用等号 { d-=md; m++; md = gtmd(y,m); } cout<<y<<'-'; printf("%.2d-%.2d\n",m,d); } }