C语言代码:将2020年1~366天计数转换为日期和星期

2020年有366天,将2020年1月1日作为计数起点,即计数1,2020年12月31日作为计数终点,即计数366。计数1代表'2020年1月1日星期三',计数10代表'2020年1月10日-星期五'。

通过键盘输入一个1~366之间的值,包括1和366,基于结构体,将其转换为年、月、日、星期,并输出到控制台窗口。

#include <stdio.h>

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

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

struct Date convertToDateTime(int count) {
    struct Date date;
    date.year = 2020;
    date.month = 1;
    date.day = 1;
    date.weekday = 3;

    int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

    int dayOfYear = count;
    if (isLeapYear(date.year)) {
        daysInMonth[1] = 29;
    }
    while (dayOfYear > daysInMonth[date.month - 1]) {
        dayOfYear -= daysInMonth[date.month - 1];
        date.month++;
    }
    date.day = dayOfYear;

    date.weekday = (date.weekday + count - 1) % 7;

    return date;
}

int main() {
    int count;
    printf("请输入一个1~366之间的数:");
    scanf("%d", &count);

    if (count < 1 || count > 366) {
        printf("输入的数不在1~366之间\n");
        return 0;
    }

    struct Date date = convertToDateTime(count);

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

代码解析

  1. 结构体 Date 定义: 结构体包含年、月、日和星期几信息,用于存储日期信息。
  2. 函数 isLeapYear: 判断年份是否为闰年。
  3. 函数 convertToDateTime: 将计数转换为日期信息,并计算星期几。
  4. main 函数: 从用户获取输入,调用函数进行转换,并将结果输出到控制台。

代码执行流程

  1. 用户输入一个1~366之间的整数。
  2. 程序调用 convertToDateTime 函数,将计数转换为日期信息和星期几。
  3. 程序根据日期信息和星期几,输出到控制台窗口。

总结

该代码实现了一个简单的日期转换功能,将2020年1~366天计数转换为日期和星期,并输出到控制台窗口。代码使用结构体和函数,结构清晰,便于理解和修改。

C语言代码:将2020年1~366天计数转换为日期和星期

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

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