用c++帮我写一个日期计算器代码,要求输入一个日期,后面输入增加的天数,最后显示增加后的日期
时间: 2023-05-24 14:07:15 浏览: 89
下面是一个简单的日期计算器代码,可以实现输入一个日期,输入增加的天数,然后输出增加后的日期:
```c
#include <stdio.h>
int main() {
int year, month, day;
int days_to_add;
int days_in_month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 获取输入的日期和增加天数
printf("请输入一个日期(年-月-日):\n");
scanf("%d-%d-%d", &year, &month, &day);
printf("请输入要增加的天数:\n");
scanf("%d", &days_to_add);
// 计算增加后的日期
while (days_to_add > 0) {
// 判断是否是闰年
int is_leap_year = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
// 计算这个月有几天
int days_in_this_month = days_in_month[month];
if (month == 2 && is_leap_year) {
days_in_this_month++;
}
// 如果增加天数大于这个月还剩下的天数,就跳到下一个月
if (days_to_add > days_in_this_month - day) {
days_to_add -= (days_in_this_month - day + 1);
day = 1;
month++;
if (month > 12) {
year++;
month = 1;
}
} else {
// 如果增加天数小于这个月还剩下的天数,就直接增加天数
day += days_to_add;
days_to_add = 0;
}
}
// 输出增加后的日期
printf("增加后的日期为:%d年%d月%d日\n", year, month, day);
return 0;
}
```
实际上,这个计算器还有很多需要改进的地方,比如没有对输入进行有效性验证,只支持增加天数而没有支持减少天数等。但是,这个代码可以提供一个基本的思路,后续可以根据需要进行扩充和优化。
阅读全文