5 银行存款到期日

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 leap(int year,int month)
{
	int days;
	if(year%4==0 && year%100!=0 || year%400==0)//闰年
	{
		if(month==2)
			return 29;	
	}
	else
	{
		if(month==2)
			return 28;
	}
	if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
		return 31;
	else return 30;
}

int main()
{
	int y,m,d,p;
	int years,months;
	while( scanf("%d %d %d %d",&y,&m,&d,&p) != EOF)
	{
		years=p/12;
		months=p%12;
		y+=years;
		m+=months;
		if(m>12)
		{
			y++;
			m%=12;
		}
		if( d>leap(y,m) )
			d=leap(y,m);
		printf("%d %d %d\n",y,m,d);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/HurryBen/article/details/105731354
今日推荐