5 银行存款到期日
作者: Turbo时间限制: 1S章节: 分支结构
问题描述 :
银行存款有3个月、6个月定期等。从键盘输入一个日期(即为存款日期)以及定期的时间长度(单位为月,输入的时间长度可为小于等于60的任意正整数),请编程输出该定期存款的到期日期。 下面以3个月定期为例,说明定期的概念。
比如:
输入2014年4月30日,则到期日是2014年7月30日;
输入2014年3月31日,则到期日是2014年6月30日(6月没有31日,所以30日就到期);
输入2014年11月30日,则到期日是2015年2月28日;
输入2015年11月30日,则到期日是2016年2月29日。
输入说明 :
共输入4个整数,中间以空格分隔,第一个整数表示年,第二个整数表示月,第三个整数表示日,第四个整数表示定期长度(单位为月)。
输出说明 :
输出到期日期,共输出三个整数,中间以一个空格分隔,行首与行尾均无空格。
输入范例 :
2014 4 30 3
输出范例 :
2014 7 30
借鉴其他博主的代码如下:
#include <stdio.h>
int main(){
int y, m, d, t;//year month day time
int month[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
while ((scanf("%d%d%d%d",&y,&m,&d,&t)!=EOF))
{
m += t;
while (m > 12){
m = m - 12;
y++;
}
if ((y % 400 == 0) || (y % 4 == 0 && y % 100 != 0))
month[2]++;
printf("%d %d %d\n", y, m, d < month[m] ? d:month[m]);
}
return 0;
}