闰年判断两种方法JAVA代码

问题描述
给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:
    年份是4的倍数而不是100的倍数;
    年份是400的倍数。
其他的年份都不是闰年。
输入格式

输入包含一个整数y,表示当前的年份。
输出格式
    输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。
样例输入
    2013
样例输出
    no
样例输入
    2016
样例输出
    yes
数据规模与约定
    1990 <= y <= 2050。
锦囊1
使用if语句进行判断。
锦囊2
当条件是4的倍数且不是100的倍数,或者是400的倍数满足时输出yes,否则输出no。
代码:

public class Main 
{	
	
	public static void main(String[] args) throws NumberFormatException, IOException 
	{
		BufferedReader bf1=new BufferedReader(new InputStreamReader(System.in));
		int num=Integer.parseInt(bf1.readLine());		
			if((num%4==0&&num%100!=0)||(num%400==0))
				System.out.println("yes");
			else
				System.out.println("no");							
	}
}

功能完善的闰年判断两种方法:
转载:https://www.idaobin.com/archives/310.html

方法一:

import java.util.Scanner;
public class Bissextile{
	public static void main(String[] args){
        Scanner input=new Scanner(System.in);//声明扫描仪变量
        System.out.println("请输入年份");//系统提示输入年份
        try{ //监听异常
        while(true){  //不断读取用户输入的值
            int years=input.nextInt();//取得下一行输入的年份值
            if (years<1000||years>9999)
                 System.out.println("请输入大于1000小于9999的年份");
            else if(years % 4 == 0 && years % 100 != 0 || years % 400 == 0){  //平闰年判断算法
                      System.out.println(years+"年是闰年");
                    }
            else {
                   System.out.println(years+"年是平年");
                }
            }
         }
        catch(Exception e){  //异常处理
    		System.out.println("请正确输入");
    		e.printStackTrace();  //打印异常信息在程序中出错的位置及原因
        }
     }
} 

方法二:一般函数法

import java.util.Scanner;
public class Bissextile {
	boolean bissextile(int year){  //创建boolean类型的方法
		if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){  //平闰年判断算法
			return true;
		}
		else{
			return false;
		}
	}
	public static void main(String[] args){
		Bissextile b=new Bissextile();  //创建对象
		Scanner input=new Scanner(System.in);//声明扫描仪变量
		System.out.println("请输入年份");//系统提示输入年份
		try{
		while(true){  //不断读取用户输入的值
		int year1=input.nextInt();//取得下一行输入的年份值
		if (year1<1000||year1>9999){
			System.out.println("请输入大于1000小于9999的年份");
		}
		else if(b.bissextile(year1)){  //对象调用bissextile方法
			System.out.println(year1+"是闰年");
		}
		else{
			System.out.println(year1+"是平年");
				}
			}
		}
		catch(Exception e){  //异常处理
    		     System.out.println("请正确输入");
    		     e.printStackTrace();  //打印异常信息在程序中出错的位置及原因
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章