以下是使用 C 语言编写的程序,它可以接受用户输入的日期,并确定那一天是星期几。

#include <stdio.h>

// 函数声明
int dayOfWeek(int year, int month, int day);

int main() {
    int year, month, day;

    // 获取用户输入
    printf('请输入日期(年-月-日):');
    scanf('%d-%d-%d', &year, &month, &day);

    // 判断输入的日期是否合法
    if (year < 1 || month < 1 || month > 12 || day < 1 || day > 31) {
        printf('输入的日期无效!\n');
        return 0;
    }

    // 调用函数获取星期几
    int weekday = dayOfWeek(year, month, day);

    // 打印结果
    switch (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;
        default:
            printf('计算出错!\n');
            break;
    }

    return 0;
}

int dayOfWeek(int year, int month, int day) {
    if (month < 3) {
        month += 12;
        year--;
    }

    int century = year / 100;
    year %= 100;

    int week = year + year / 4 + century / 4 - 2 * century + 26 * (month + 1) / 10 + day - 1;
    week = (week % 7 + 7) % 7;

    return week;
}

这个程序使用了一个名为dayOfWeek的函数来计算星期几。它采用了基姆拉尔森公式(Zeller's Congruence)来进行计算。用户需要按照年-月-日的格式输入日期,然后程序会返回对应的星期几。星期日为0,星期一到星期六分别为1到6。

请注意,这个程序没有对闰年进行严格的判断,对于非法日期的输入,它会简单地打印出'输入的日期无效!'。在实际应用中,可能需要对闰年和日期的合法性进行更加严格的检查。

C语言程序:计算日期对应的星期几

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

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