c++用getdays函写代码,输入几年几月,输出该月有多少天
时间: 2024-03-02 16:51:37 浏览: 64
好的,以下是 C++ 代码示例:
```c++
#include <iostream>
#include <ctime>
using namespace std;
int getdays(int year, int month) {
// 设置 struct tm 结构体
struct tm timeinfo = {0};
timeinfo.tm_year = year - 1900;
timeinfo.tm_mon = month - 1;
timeinfo.tm_mday = 1;
// 调用 mktime 函数获取该月的天数
time_t time = mktime(&timeinfo);
timeinfo = *localtime(&time);
return 32 - timeinfo.tm_mday;
}
// 示例使用
int main() {
int year = 2022;
int month = 12;
int days = getdays(year, month);
printf("%d年%d月有%d天\n", year, month, days);
return 0;
}
```
代码中,我们先设置 `struct tm` 结构体,然后调用 `mktime` 函数获得该月的时间戳,再调用 `localtime` 函数将时间戳转化为时间信息,最后计算出该月的天数并返回。使用时只需要传入年份和月份即可,示例中输出的结果为:`2022年12月有31天`。
需要注意的是,这个示例使用了 C++11 标准中的时间函数库,因此需要在编译时链接 `-std=c++11` 选项,否则会报错。
阅读全文