已知某月的第一天是星期三,编写程序实现输入当月中的一个日期号,输出是星期几。使用枚举类型来定义一个星期中的每一天。用基础的C++语言来编写这个程序
时间: 2025-01-04 19:40:53 浏览: 6
要使用C++编写这样的程序,你可以创建一个枚举类型表示一周中的每一天,并使用模运算和一些简单的数学计算来确定给定日期是星期几。以下是一个简单的示例:
```cpp
#include <iostream>
using namespace std;
enum class Weekday {
Monday = 0,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
Weekday getDayOfWeek(int day, int month) {
const int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 根据是否闰年调整2月天数
if (month == 2 && is_leap_year(year)) {
daysInMonth[1] = 29;
}
// 计算从1月1日到给定日期的总天数
int totalDays = (day - 1) + accumulate(daysInMonth, daysInMonth + month, 0);
// 返回该天对应的枚举值,注意一周是从星期一开始算的
return static_cast<Weekday>((totalDays % 7) + Weekday::Monday);
}
bool is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int inputDay;
int inputMonth;
cout << "请输入月份中的日期(1-31): ";
cin >> inputDay;
cout << "请输入月份(1-12): ";
cin >> inputMonth;
int year = 2023; // 示例年份,实际应用中需要用户输入或动态获取
cout << "给定日期" << inputDay << "/" << inputMonth << "是 " << getDayOfWeek(inputDay, inputMonth) << " (" << to_string((int)getDayOfWeek(inputDay, inputMonth)) << ").\n";
阅读全文