先日、こちらでいろいろな方々に答えていただいたことを参考に改善はしたのですが、どうにも解決しないので、もう一度お知恵を貸していただけないでしょうか。うるう年のコードなのですが、%の剰余による判別で割り切れるか割り切れないか条件式で算出していました。
従来までは閏年の年号を条件式で整数で割り切れると思っていたので閏年でも閏年ではないと出力していました。そこで小数点以下で割り切れるか判断するために、yearの変数をint型からdouble型にするなどしてみましたがうまくいきませんでした。```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(); double year=Integer.parseInt(num); if(year<1898){ System.out.println(year+"年は日本がまだ閏年を考えた暦を採用していません。wiki参照。"); }else if(year%4==0 && year%100!=0 && year%400==0){ System.out.println(year+"年は閏年です。"); }else if(year%4==0 && year%100==0 && year%400!=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("数字が入力されていません。"); }
}
}
どうか解決策のヒントをください。 よろしくお願いします。