用c plus plus 14写一个函数,输入一个代表日期的字符串例如“2023-4-3”,判断当前日期是否在输入的日期之前,是返回true。反之返回false
时间: 2023-06-04 20:04:26 浏览: 99
好的,我可以帮您实现这个函数。以下是函数代码:
```c++
#include <iostream>
#include <string>
using namespace std;
bool isDateBeforeCurrentDate(string date) {
int year, month, day;
sscanf(date.c_str(), "%d-%d-%d", &year, &month, &day);
time_t t = time(NULL);
tm* now = localtime(&t);
if (year > now->tm_year + 1900)
return false;
else if (year == now->tm_year + 1900)
{
if (month > now->tm_mon + 1)
return false;
else if (month == now->tm_mon + 1 && day > now->tm_mday)
return false;
}
return true;
}
// 测试代码
int main() {
string date = "2023-4-3";
if (isDateBeforeCurrentDate(date))
cout << "当前日期在输入日期之前" << endl;
else
cout << "当前日期在输入日期之后" << endl;
return 0;
}
```
该函数主要是通过将输入的日期字符串转换成年、月、日的整型值,再获取当前时间,比较这两个日期的年、月、日大小,从而得出结论。如果输入日期在当前日期之前,则返回 true,否则返回 false。
请注意,该函数没有处理输入日期字符串的正确性,如输入非法格式的字符串会导致函数返回错误结果。
阅读全文