0
点赞
收藏
分享

微信扫一扫

输入日期 然后计算两天后的日期

题目要求 输入日期 然后计算两天后的日期

#include<stdio.h>
int main(){
	while(true){
		int a[3];
		int i;
		printf("============================\n");
		printf("请输入月 日 年的数字\n");
		printf("例如这样的格式\n11 3 2017\n");
		printf("\n");
		for(i=0;i<3;i++){
			scanf("%d",&a[i]);
		}
		//对月份进行初步判断 
		if(a[0]<0||a[0]>12){
			printf("月份格式不正确\n");
			continue ; 
			
		}
		//对日份进行初步判断 
		if(a[1]<1&&a[1>31]){
			printf("日份格式不正确\n");
			continue ; 
		
		}
		//对大月进行判断 
		if(a[0]==1||a[0]==3||a[0]==5||a[0]==7||a[0]==8||a[0]==10){
			if(a[1]==31){
				a[1]=2;
				a[0]++;
			}else if(a[1]==30){
				a[1]=1;
				a[0]++;
			}else{
				a[1]=a[1]+2;
			}
		}
		//对小月进行判断 
		else if(a[0]==4||a[0]==6||a[0]==9||a[0]==11){
		
			if(a[1]==31) {
				printf("日份格式不正确\n");
				continue ; 
				
			}else if(a[1]==30){
				a[1]=2;
				a[0]++;
			}else if(a[1]==29){
				a[1]=1;
				a[0]++;
			}else{
				a[1]=a[1]+2;
			}
		}
		else if(a[0]==2){
			//对2月进行判读 
			if((a[2]/4==0&&a[2]/100!=0)||(a[2]/400==0)){
					if(a[1]==29){
						a[1]=2;
						a[0]++;
					}else if(a[1]==28){
						a[1]=1;
						a[0]++;
					}else{
						a[1]=a[1]+2;
					}
				}else{
					if(a[1]>=29){
						printf("不是瑞年 日期 输入有误\n");
						continue ;
					}
					else if(a[1]==28){
						a[1]=1;
						a[0]++;
					}else{
						a[1]=a[1]+2;
					}
				
				}
		}else{
			//对12月份单独判断 如果超过界限年份加1 
			if(a[1]==31){
				a[1]=2;
				a[0]=1;
				a[2]++;
			}else if(a[1]==30){
				a[1]=1;
				a[0]=1;
				a[2]++;
			}else{
				a[1]=a[1]+2;
			}
		}
		printf("\n");
		printf("两天后的日期是\n");
		printf("\n");
		printf("%d/%d/%d\n",a[0],a[1],a[2]);
		printf("\n");

			
	}

}

输出格式如下

============================
请输入月 日 年的数字
例如这样的格式
11 3 2017

11 31 2017
日份格式不正确
============================
请输入月 日 年的数字
例如这样的格式
11 3 2017

11 30 2017

两天后的日期是

12/2/2017

============================
请输入月 日 年的数字
例如这样的格式
11 3 2017



举报

相关推荐

0 条评论