编程实现: 从键盘输入年份和月份,计算从该年1月1日到当月月底的总天数。 输入格式: 输入某年某月,如:2021 11 输出格式: 从该年1月1日到当月月底的总天数,最后换行。
时间: 2024-11-25 08:31:08 浏览: 39
在C++中,你可以使用内置的数据类型`std::chrono`来计算给定年份和月份的总天数。这里有一个简单的实现方法:
```cpp
#include <iostream>
#include <chrono>
#include <ctime>
int daysInMonth(int year, int month) {
if (month < 1 || month > 12) {
std::cerr << "错误:月份无效,范围应在1-12之间。" << std::endl;
return 0;
}
// 使用CTime类获取该月有多少天
std::tm timeinfo {};
timeinfo.tm_year = year - 1900;
timeinfo.tm_mon = month - 1; // CTime要求月份从0开始计数
timeinfo.tm_mday = 1;
time_t rawtime {};
mktime(&timeinfo);
rawtime = mktime(&timeinfo); // mktime会自动填充其余日期信息
std::tm* p_time = localtime(&rawtime); // 转换为本地时间格式
return p_time->tm_mday; // 返回该月最后一天的天数
}
int main() {
int year, month;
std::cout << "请输入年份和月份(例如:2021 11): ";
std::scanf("%d %d", &year, &month);
int total_days = daysInMonth(year, month);
if (total_days != 0) {
std::cout << "从" << year << "年1月1日到" << month << "月" << total_days << "日为止的总天数: " << total_days << std::endl;
}
return 0;
}
```
在这个程序中,`daysInMonth`函数负责计算给定年月的总天数,`main`函数则处理用户的输入和输出。
阅读全文