#include <stdio.h>

struct Date { int year; int month; int day; int weekday; };

int isLeapYear(int year) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { return 1; } else { return 0; } }

void convertToDate(int count, struct Date *date) { int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int month = 1; while (count > daysInMonth[month - 1]) { if (month == 2 && isLeapYear(date->year)) { count -= 29; } else { count -= daysInMonth[month - 1]; } month++; } date->month = month; date->day = count;

// Calculate the weekday
int startWeekday = 3;  // January 1, 2020 is Wednesday
date->weekday = (startWeekday + count - 1) % 7;

}

int main() { int count; struct Date date;

printf("Please enter a number between 1 and 366: ");
scanf("%d", &count);

if (count < 1 || count > 366) {
    printf("Invalid input\n");
    return 0;
}

date.year = 2020;
convertToDate(count, &date);

printf("%d年%d月%d日 星期", date.year, date.month, date.day);
switch (date.weekday) {
    case 0:
        printf("日\n");
        break;
    case 1:
        printf("一\n");
        break;
    case 2:
        printf("二\n");
        break;
    case 3:
        printf("三\n");
        break;
    case 4:
        printf("四\n");
        break;
    case 5:
        printf("五\n");
        break;
    case 6:
        printf("六\n");
        break;
}

return 0;

}

C语言实现日期转换:将2020年计数转换为年、月、日、星期

原文地址: https://www.cveoy.top/t/topic/pbIg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录