C++查找5天内过生日的人员的信息
时间: 2024-03-25 10:36:11 浏览: 113
你需要一个包含所有人员生日信息的数据结构(如数组、哈希表等),以及一些时间处理函数。
首先,获取当前时间,然后遍历人员生日信息,将其转化为时间格式,并计算与当前时间的差值(单位为天)。如果差值小于等于5,则将该人员的信息添加到结果列表中。
以下是一个简单的示例代码:
```c++
#include <iostream>
#include <ctime>
#include <vector>
using namespace std;
struct Person {
string name;
int month;
int day;
};
int main() {
// 假设有以下人员生日信息
vector<Person> people = {
{"Alice", 3, 12},
{"Bob", 5, 23},
{"Charlie", 7, 10},
{"David", 8, 2},
{"Emily", 9, 5},
{"Frank", 10, 30}
};
// 获取当前时间
time_t now = time(nullptr);
// 遍历人员生日信息,将符合条件的人员信息添加到结果列表中
vector<Person> result;
for (const auto& person : people) {
time_t birthday = mktime(&(tm){0, 0, 0, person.day, person.month - 1, 121}); // 将生日转化为时间格式
double diff = difftime(birthday, now) / (60 * 60 * 24); // 计算与当前时间的差值
if (diff <= 5 && diff > 0) {
result.push_back(person);
}
}
// 输出结果
for (const auto& person : result) {
cout << person.name << " " << person.month << "/" << person.day << endl;
}
return 0;
}
```
该代码将输出在当前时间的五天内过生日的人员的姓名和生日。
阅读全文