首页 > 其他分享 >输入日期 然后计算两天后的日期

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

时间:2023-04-18 22:03:21浏览次数:29  
标签:11 两天 ++ else 日期 printf 格式 2017 输入

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

#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



标签:11,两天,++,else,日期,printf,格式,2017,输入
From: https://blog.51cto.com/hiszm/6204084

相关文章

  • 4/18打卡 复数的输入输出和加减乘除重载
    classComplex{doublereal;doubleimag;public:friendistream&operator>>(istream&is,Complex&c);friendostream&operator<<(ostream&os,constComplex&a);Complex(){real=0;......
  • 设计异常处理类Cexception,并基于异常处理类设计并实现日期类Date
    定义一个异常类Cexception解决日期类实现中的自定义异常处理。设计的日期类应包含以下内容:① 有三个成员数据:年、月、日;② 有设置日期的成员函数;③ 有用格式"月/日/年"输出日期的成员函数;④ 要求在日期设置及有参构造函数中添加异常处理。classCexception:de......
  • 告别输入网址烦恼!ChatGPT不错开源客户端
    ChatBox是什么开源的ChatGPTAPI(OpenAIAPI)桌面客户端,Prompt的调试与管理工具,支持Windows、Mac和Linux。为什么需要它每次想访问ChatGPT时,都需要在浏览器中输入ChatGPT网址,然后点击登录,选择账号,整个过程中比较麻烦,该工具提供ChatGPT桌面应用版本,直接安装在桌面使用......
  • 一统天下 flutter - 输入: 命中测试(hit test)
    一统天下flutterhttps://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-输入:命中测试(hittest)示例如下:lib\input\hit_test.dart/**命中测试(hittest)**hittest的作用是根据事件的位置收集所有在该位置上的widget,然后从最底层的节点开始向......
  • ubuntu22.04 在多个应用中不能调用 fcitx5 输入法的问题
    网上找了很多教程,都是设置环境变量,本身思路没问题。只不过有问题的是,环境变量是基于会话的。大多数教程设置环境变量的方法需要启动一个shell进程才能加载。而用户的窗口进程是系统启动的时候就已经加载了,肯定不会去加载shell的环境变量。在用户配置中写入环境变量直接把......
  • Django中TruncMonth截取日期使用方法,按月统计
    将原来的年月日按照月份来截取统计数据,具体参考如下官方示例:-官方提供fromdjango.db.models.functionsimportTruncMonthArticle.objects.annotate(month=TruncMonth('timestamp'))#Truncatetomonthandaddtoselectlist.values('month')#GroupBymonth.anno......
  • unigui中TuniComboBox限制只能选择,不能手工输入的方法
    问题:TuniComboBox限制只能选择,不能手工输入确认清楚了,对于UniComboBo没有任何问题,对于UniDBComboBox,该属性就存在一定的问题,初始前,不能设置为csDropDownList,必须为默认的csDropDown,不然初始显示数据信息时,该DB对应的原始数据项目信息不出来,需要在窗口的UniFormAfterShow中再将它......
  • Ubuntu系统搜狗输入法无法在IDEA全局搜索(Ctrl+Shift+F)中输入中文
    前提需要关闭输入法的Ctrl+Shift+F的中文简体和繁体切换快捷键清除IDEA缓存并重启File-->InvalidateCaches/Restart.........
  • [apue] 一图读懂 Unix 时间日期例程相互关系
    概览 开门见山先上图界定一些术语,方便后面说明:GMT:格林威治平均时,太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午12点,1972年之前使用的国际标准时间,因地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟。UTC:国际标准时间,相当......
  • 如何写一个脚本判断日期是否合法
    【需求】用shell脚本判断输入的日期是否合法。就是判断日期是否是真实的日期,比如20170110就是合法日期,20171332就不合法。假定年份不超过4位。【分析】判断日期是否合法,使用cal命令即可,cal命令用法:1)cal什么都不加,打印全年的日历cal2)cal后面带一个参数,只能是带年份cal2022......