java初心者です。
うるう年かどうかを出力するコードを作ったのですがうるう年でも、うるう年と出力できず、「うるう年ではない」となります。
こちらの問題点がわからないので教えていただけないでしょうか。
うるう年であると出力する条件式のところがなにかおかしいまではわかるのですが解決策が思い浮かびません。
お手数ですが改善策をよろしくお願いします。
問題のコード
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//西暦が4で割り切れる年は閏年である。
//ただし、100で割り切れる年は閏年ではない。
//ただし、400で割り切れる年は閏年である。
public class Uru_year {
public static void main(String[]args)throws IOException{
System.out.println("西暦で年号を入力してください"); BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); try{ String num=br.readLine(); int year=Integer.parseInt(num); if(year<1898){ System.out.println(year+"年は日本がまだ閏年を考えた暦を採用していません。wiki参照。"); }else if(year%4==0 && year%400==0 && year%100!=0){ System.out.println(year+"年は閏年です。"); }else if(year%4==0 && year%400==0 && year%100==0){ System.out.println(year+"年は閏年ではありません"); }else if(year>2100&&year<2999){ System.out.println(year+"年はあまり現実的ではありません。"); }else{ System.out.println(year+"年は閏年ではありません"); } } catch(NumberFormatException e){ System.out.println(e); System.out.println("数字が入力されていません。"); }
}
}