题解 | 打印日期

打印日期

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;
}


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务