Java学习记录 由用户在控制台输入年份和月份, 程序计算该年该月的天数。

2021-04-03  流程控制的逻辑训练任务(分支+循环综合) 2

计算该年该月天数 一年中有 12 个月,而每个月的天数是不一样的。其中大月 31 天,分别为 1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月。还有二月比较特殊,平 年的二月只有 28 天,而闰年的二月有 29 天,由用户在控制台输入年份和月份, 程序计算该年该月的天数。

 

代码如下:

import java.util.Scanner;

public class Class4_6 {

	public static void main(String[] args) {
		
		int inputCount = 2;//输入次数
		int year = 0;//年份
		int month = 0;//月份
		int day = 0;//天数
		int leapYearFlag = 0;//闰年标记
		do {
			Scanner input = new Scanner(System.in);//接收输入数据
			if(inputCount==2) {System.out.println("请输年份");year = inputData(input);}//赋值年份数值
			if(inputCount==1) {System.out.println("请输入月份");month = inputData(input);}//赋值月份数值
			inputCount--;
		}while(inputCount>0);
		//判断根据年份天数
		if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
			day = 31;//大月有31天
			System.out.println(year+"年的"+month+"月有"+day+"天");
		}else if(month==4||month==6||month==9||month==11) {
			day = 30;//小月有30天
			System.out.println(year+"年的"+month+"月有"+day+"天");
		}else if(month==2){
			if(judgeYear(year,leapYearFlag)==1) {
				day = 29;//闰年2月有29天
				System.out.println(year+"年的"+month+"月有"+day+"天");
			}else {
				day = 28;//平年2月有28天
				System.out.println(year+"年的"+month+"月有"+day+"天");
			}
		}else {
			System.out.println("你输入的月份有误");
		}
		

	}
	//判断闰年
	public static int judgeYear(int year,int leapYearFlag) {
		if(year%4==0&&year%100!=0) {
			leapYearFlag = 1;
		}else if(year%400==0) {
			leapYearFlag = 1;
		}else {
			leapYearFlag = 0;
		}
		return leapYearFlag;
	}
	
	//判断输入的数据类型
	public static int inputData(Scanner input) {
		int data = 0;
		if(input.hasNextInt()) {
			data = input.nextInt() ;//赋值
		}else {
			System.out.println("你输入的数据有误");
		}
		return data;
	}

}

运行结果:

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值