用户生日存放在一个wstrng中,将它转换成string,再读取系统时间,判断今天是否是用户生日 C++
时间: 2024-02-23 22:01:53 浏览: 60
可以使用C++中的wstring和wstring_convert库来将wstrng转换成string类型,然后再按照之前的方法进行判断。
下面是一个示例代码:
```c++
#include <iostream>
#include <ctime>
#include <string>
#include <locale>
#include <codecvt>
using namespace std;
int main()
{
time_t now = time(0);
tm* local_time = localtime(&now);
wstring user_birthday = L"1990-09-01";
//将wstrng转换成string
wstring_convert<codecvt_utf8<wchar_t>> conv;
string birthday_str = conv.to_bytes(user_birthday);
string birthday_year = birthday_str.substr(0, 4);
string birthday_month = birthday_str.substr(5, 2);
string birthday_day = birthday_str.substr(8, 2);
if (stoi(birthday_year) == local_time->tm_year + 1900 &&
stoi(birthday_month) == local_time->tm_mon + 1 &&
stoi(birthday_day) == local_time->tm_mday)
{
cout << "Happy birthday!" << endl;
}
else
{
cout << "Today is not your birthday." << endl;
}
return 0;
}
```
需要注意的是,需要在代码开头添加`#include <locale>`和`#include <codecvt>`来使用wstring_convert库。
阅读全文