已知某月的第一天是星期三,编写程序实现输入当月中的一个日期号,输出是星期几。使用枚举类型来定义一个星期中的每一天。用基础入门的C++语言来编写这个程序并添加注释
时间: 2025-01-04 09:40:58 浏览: 8
在C++中,我们可以使用基本的算术和模运算来解决这个问题,结合枚举类型定义一周中的每一天。下面是一个简单的程序示例:
```cpp
#include <iostream>
using namespace std;
// 定义枚举类型表示一周中的每一天
enum class Weekday {
Monday = 0,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
// 计算给定日期相对于一个月第一天的偏移量,并返回对应的星期
Weekday getDayOfWeek(int dayOfMonth, int month) {
// 根据月份和第一天是星期三来计算偏移量
const int firstDayOffset = (month - 1) * 7 + static_cast<Weekday>(Wednesday); // 因为假设第一个星期三是0
// 一周有7天,所以计算剩余的天数
return static_cast<Weekday>((dayOfMonth - 1) % 7 + firstDayOffset);
}
int main() {
int inputDay; // 输入的日期
cout << "请输入该月中的日期(1-31):";
cin >> inputDay;
// 输入月份,这里为了简化示例,可以固定为一月(因为题目没有说明)
int inputMonth = 1;
// 获取该日期对应的星期
Weekday weekday = getDayOfWeek(inputDay, inputMonth);
// 输出结果
switch (weekday) {
case Weekday::Monday:
cout << "这一天是星期一" << endl;
break;
case Weekday::Tuesday:
cout << "这一天是星期二" << endl;
break;
// ...以此类推,直到Sunday
default:
cout << "这一天是星期" << static_cast<int>(weekday) << endl;
}
return 0;
}
```
阅读全文