Java小白入门200例50之Java判断闰年并打印月份对应的天数

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例50之Java判断闰年并打印月份对应的天数相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  49.循环中的return语句
►下一篇  51.根据出生日期计算星座

闰年判断

满足下面条件之一就是闰年

  1. 能被4整除,但不能被100整除。
  2. 能被400整除。

方案1

自己封装方法来实现

package demo.demo50;

import java.util.Scanner;

public class Run2 {

	public static void main(String[] args) {
		//获取输入的年份
		int year = getYear();
		boolean run = isRun(year);
		if(run){
			System.out.println(year + " 是闰年");
		}else {
			System.out.println(year + " 不是闰年");
		}
	}
	private static int getYear() {
		System.out.println("请输入年份:");
		Scanner scanner = new Scanner(System.in);
		return scanner.nextInt();
	}
	//判断是否为闰年
	private static boolean isRun(int year){
		/*满足下面之一就是闰年
		 * 
		 * 1.能被4整除,但不能被100整除
		 * 2.能被400整除
		 */
		if((year%4==0&&year%100!=0)||year%400==0){
			return true;
		}
		return false;
	}

}

测试运行1:

请输入年份:
2012
2012 是闰年

测试运行2:

请输入年份:
2013
2013 不是闰年

方案2

利用GregorianCalendar 来判断

package demo.demo50;

import java.util.GregorianCalendar;
import java.util.Scanner;

public class Run {

	public static void main(String[] args) {
		//获取输入的年份
		int year = getYear();
		boolean run = isRun(year);
		if(run){
			System.out.println(year + " 是闰年");
		}else {
			System.out.println(year + " 不是闰年");
		}
	}
	private static int getYear() {
		System.out.println("请输入年份:");
		Scanner scanner = new Scanner(System.in);
		return scanner.nextInt();
	}
	//判断是否为闰年
	private static boolean isRun(int year){
	      GregorianCalendar cal =
	              (GregorianCalendar) GregorianCalendar.getInstance();
	      return cal.isLeapYear(year);
	}

}

测试运行:

请输入年份:
2020
2020 是闰年

月份打印

加入月份打印,注意闰年的2月是29天,平年2月是28天

package demo.demo50;

import java.util.GregorianCalendar;
import java.util.Scanner;

public class Run3 {

	public static void main(String[] args) {
		//获取输入的年份
		int year = getYear();
		boolean run = isRun(year);
		if(run){
			System.out.println(year + " 是闰年");
		}else {
			System.out.println(year + " 不是闰年");
		}
		//打印月份天数
		printMonthDay(run);
	}
	//打印月份天数
	private static void printMonthDay(boolean run) {
		int day=0;
		for (int i = 1; i <= 12; i++) {
			day = getDay(run,i);
			System.out.println(i+"月的天数:"+day);
		}
	}
	//获取月份的天数
	private static int getDay(boolean run,int month) {
		int day=0;
		switch (month) {
			//1\\3\\5\\7\\8\\10\\12 31天
	        case 1:
	        case 3:
	        case 5:
	        case 7:
	        case 8:
	        case 10:
	        case 12:
	        	day=31;
	            break;
	        //2月份需判断闰年
	        case 2:
	        	if(run){
	        		day=29;
	        	}else {
					day=28;
				}
	            break;
	         //   4\\6\\9\\11 30天
	        case 4:
	        case 6:
	        case 9:
	        case 11:
	        	day=30;
	            break;
	        default:
	            break;
		}
		return day;
	}
	private static int getYear() {
		System.out.println("请输入年份:");
		Scanner scanner = new Scanner(System.in);
		return scanner.nextInt();
	}
	//判断是否为闰年
	private static boolean isRun(int year){
	      GregorianCalendar cal =
	              (GregorianCalendar) GregorianCalendar.getInstance();
	      return cal.isLeapYear(year);
	}

}

测试运行1:

请输入年份:
2020
2020 是闰年
1月的天数:31
2月的天数:29
3月的天数:31
4月的天数:30
5月的天数:31
6月的天数:30
7月的天数:31
8月的天数:31
9月的天数:30
10月的天数:31
11月的天数:30
12月的天数:31

测试运行2:

请输入年份:
2021
2021 不是闰年
1月的天数:31
2月的天数:28
3月的天数:31
4月的天数:30
5月的天数:31
6月的天数:30
7月的天数:31
8月的天数:31
9月的天数:30
10月的天数:31
11月的天数:30
12月的天数:31

小结

这节总结了“Java判断闰年并打印月份对应的天数”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  49.循环中的return语句
►下一篇  51.根据出生日期计算星座

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例50之Java判断闰年并打印月份对应的天数的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例98之Java异常

Java小白入门200例95之Java匿名类

Java小白入门200例105之Java ArrayList类

Java小白入门200例107之Java LinkedList类

Java小白入门200例112之Java HashSet类

Java小白入门200例99之Java常见异常及处理