用户生日存放在wstring中,读取系统时间,判断今天是否是用户的生日 c++
时间: 2024-02-23 07:01:33 浏览: 66
可以使用以下代码实现从 `wstring` 中读取用户生日,然后读取系统时间并判断今天是否是用户的生日:
```c++
#include <ctime>
#include <iostream>
#include <locale>
#include <codecvt>
int main() {
// 获取当前时间
time_t t = time(NULL);
tm* timePtr = localtime(&t);
int currentMonth = timePtr->tm_mon + 1;
int currentDay = timePtr->tm_mday;
// 从 wstring 中读取用户生日
std::wstring userBirth = L"1990年12月25日"; // 这里假设用户生日是 1990 年 12 月 25 日
int birthMonth, birthDay;
std::wstringstream(userBirth.substr(5, 2)) >> birthMonth;
std::wstringstream(userBirth.substr(8, 2)) >> birthDay;
// 判断今天是否是用户的生日
if (currentMonth == birthMonth && currentDay == birthDay) {
std::wcout << L"今天是你的生日,祝你生日快乐!" << std::endl;
} else {
std::wcout << L"今天不是你的生日。" << std::endl;
}
return 0;
}
```
在这个代码中,我们首先获取当前时间的月份和日期。然后,我们假设用户的生日存放在一个 `wstring` 对象中,例如 `L"1990年12月25日"`。我们使用 `substr()` 方法从 `wstring` 中提取出生日的月份和日期,并将它们转换为整数值。最后,我们将当前的月份和日期与用户的生日进行比较,如果相同,则输出生日快乐的祝福,否则输出其它内容。需要注意的是,我们需要在输出中使用 `std::wcout` 来输出 Unicode 字符串。
阅读全文