閏年判斷兩種方法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();  //打印異常信息在程序中出錯的位置及原因
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章