dev c++按年/月/日的格式输入一个日期,按该格式输出该日期的下一天 代码示例
时间: 2024-09-30 10:07:02 浏览: 34
C++ 实现2048游戏示例
在Dev C++中,你可以使用`<ctime>`库来进行日期操作。以下是一个简单的代码示例,它将提示用户输入一个日期,然后计算并输出下一天:
```cpp
#include <iostream>
#include <ctime>
void inputDate(int& day, int& month, int& year) {
std::cout << "请输入年、月、日(格式:YYYY/MM/DD): ";
std::cin >> year >> month >> day;
}
int main() {
int day, month, year;
struct tm date = {0};
// 输入日期
inputDate(day, month, year);
date.tm_mday = day; // 存储输入的天数
date.tm_mon = month - 1; // 月份从0开始计数,所以减一
date.tm_year = year - 1900; // 对于tm_year,通常以1900为基准
// 设置当前时间的其他部分
time_t raw_time = time(0); // 获取当前时间
localtime_s(&date, &raw_time);
// 计算下一天
++date.tm_mday;
// 如果超过当月天数,则跳到下个月第一天
if (date.tm_mday > days_in_month(year, month)) {
date.tm_mday = 1;
++date.tm_mon;
}
// 如果一年最后一个月已经是12月,加一整年
while(date.tm_mon == 12 && date.tm_mday > days_in_month(year + 1, 1)) {
date.tm_mon = 0;
++year;
}
// 格式化并输出结果
char buffer[25];
strftime(buffer, sizeof(buffer), "%Y/%m/%d", &date);
std::cout << "下一天的日期是: " << buffer << std::endl;
return 0;
}
// 辅助函数获取给定年份和月份的天数
int days_in_month(int year, int month) {
return (month == 2 && is_leap_year(year)) ? 29 : (month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;
}
// 判断是否是闰年
bool is_leap_year(int year) {
return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
}
```
这个程序首先定义了几个辅助函数,如输入日期、判断是否为闰年以及获取某个年月的天数。主函数中先获取用户输入的日期,然后通过递增`tm_mday`并处理可能出现的月份变化,得到下一天的日期。
阅读全文