题解 | 打印日期
打印日期
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
#include <stdio.h>
int month, day;
int isLeapyear(int year) {
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
return 1;
} else {
return 0;
}
}
int is_month_day(int year, int days) {
int month_days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
for (int i = 0; i < 12; i++) {
if (i == 1) {
if (days < ((isLeapyear(year) == 1) ? 29 : 28)) {
day = days;
month = i + 1;
return 0;
}
days -= (isLeapyear(year) == 1) ? 29 : 28;
continue;
} else {
if (days < 30) {
day = days;
month = i + 1;
return 0;
}
days = days - month_days[i];
}
}
return 0;
}
int main() {
int year, days;
while (scanf("%d %d", &year, &days) != EOF) {
is_month_day(year, days);
if (month<10 && day<10)
printf("%d-0%d-0%d\n", year, month, day);
else if(month<10)
printf("%d-0%d-%d\n", year, month, day);
else if(day<10)
printf("%d-%d-0%d\n", year, month, day);
else
printf("%d-%d-%d\n", year, month, day);
}
return 0;
}