题解 | #打印日期#
打印日期
http://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
思路
记住前三段代码
AC代码
#include<iostream>
using namespace std;
const int M[13]={
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
int is_leap(int y){
if((y%4==0 && y%100 != 0) || y%400==0) return 1;
return 0;
}
int get_days(int y,int m){
if(m==2) return M[m]+is_leap(y);
return M[m];
}
int main(){
int y,s;
while(cin >> y >> s){
int m=1,d=1;
s--;
while(s--){
if(++d > get_days(y, m)){
d=1;
if(++m > 12){
m=1;
y++;
}
}
}
printf("%04d-%02d-%02d\n",y,m,d);
}
}