c++输入生日,显示生日提醒倒计时程序
时间: 2023-08-18 14:10:46 浏览: 271
下面是一个基于用户输入生日日期的 C++ 生日提醒倒计时程序:
```c++
#include <iostream>
#include <ctime>
#include <windows.h>
using namespace std;
int main()
{
// 提示用户输入生日日期
cout << "请输入你的生日,格式为:年 月 日(用空格隔开)" << endl;
int year, month, day;
cin >> year >> month >> day;
// 构造生日日期的 tm 结构体
tm birthday = {0, 0, 0, day, month - 1, year - 1900};
// 获取当前时间戳
time_t now = time(nullptr);
// 将生日日期转换为时间戳
time_t birthday_time = mktime(&birthday);
// 计算时间差
double diff = difftime(birthday_time, now);
// 转换为天、小时、分钟、秒
int days = diff / (24 * 60 * 60);
int hours = (diff - days * 24 * 60 * 60) / (60 * 60);
int minutes = (diff - days * 24 * 60 * 60 - hours * 60 * 60) / 60;
int seconds = diff - days * 24 * 60 * 60 - hours * 60 * 60 - minutes * 60;
// 输出倒计时
cout << "距离你的生日还有:" << days << "天" << hours << "小时" << minutes << "分钟" << seconds << "秒" << endl;
// 提醒
if (days == 0 && hours == 0 && minutes == 0 && seconds == 0) {
MessageBox(NULL, TEXT("今天是你的生日!"), TEXT("生日提醒"), MB_OK);
} else if (days <= 7) {
string message = "距离你的生日只有 " + to_string(days) + " 天了!";
MessageBox(NULL, message.c_str(), TEXT("生日提醒"), MB_OK);
}
return 0;
}
```
该程序使用了 Windows 的 MessageBox 函数进行消息提醒,当距离生日不足 7 天时,程序会自动弹出提醒窗口。用户输入的生日日期需要符合指定的格式,否则程序可能会出错。
阅读全文