编写一个程序,能够在已知当前是 X 月 Y 日星期 Z,求现在开始的下一个 A 月份第 B 天是周几。 输入:五个整数 X,Y,Z,A,B,表示由 X 月 Y 日星期 Z,求 A月 B 日为星期几(Z=7 表示周日,假定 2 月一直为 28 天) 输出:一行字符串,表示求得的星期几的英文单词,要求首字母大写。 提示:可定义数组char *week[]
时间: 2024-04-14 17:29:11 浏览: 77
一个对字符串处理的程序,要求能够识别字符串中大写字母、小写字母以及数字的个数并输出,识别“L”、“o”、“v”、“e”四个字符的
5星 · 资源好评率100%
下面是一个能够根据已知日期求下一个日期是星期几的程序示例:
```c
#include <stdio.h>
// 定义星期的字符串数组
char *week[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
// 获取 A 月份的天数
int getDaysInMonth(int month) {
if (month == 2) {
return 28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
} else {
return 31;
}
}
// 获取下一个日期是星期几
char* getNextWeekday(int currentMonth, int currentDay, int currentWeekday, int nextMonth, int nextDay) {
// 计算当前日期距离下一个日期的天数
int days = nextDay - currentDay;
if (nextMonth > currentMonth) {
for (int i = currentMonth; i < nextMonth; i++) {
days += getDaysInMonth(i);
}
}
// 计算下一个日期是星期几
int nextWeekday = (currentWeekday + days) % 7;
return week[nextWeekday];
}
int main() {
int currentMonth, currentDay, currentWeekday, nextMonth, nextDay;
printf("请输入当前日期和星期:(月 日 星期)");
scanf("%d %d %d", ¤tMonth, ¤tDay, ¤tWeekday);
printf("请输入下一个日期:(月 日)");
scanf("%d %d", &nextMonth, &nextDay);
char* nextWeekday = getNextWeekday(currentMonth, currentDay, currentWeekday, nextMonth, nextDay);
printf("下一个日期是:%s\n", nextWeekday);
return 0;
}
```
这个程序定义了一个 `getDaysInMonth` 函数,用于根据月份获取该月的天数。另外,定义了一个 `getNextWeekday` 函数,接受当前日期和星期、下一个日期为参数,计算出下一个日期是星期几。在 `main` 函数中,通过键盘输入的方式获取当前日期和星期、下一个日期,并调用 `getNextWeekday` 函数来计算下一个日期是星期几。
希望能对你有所帮助!如果有任何问题,请随时提问。
阅读全文