入力された年がうるう年で有効な日付かどうかを判断するプログラムを Java で作成する予定です。その日付を取得して、完全な名前 (2013 年 4 月 2 日 = 2013 年 4 月 2 日) に変換し、その年の数字 (2013 年 4 月 2 日 = 92 日目) を特定します。
1つまたは別のプログラムがたくさんありますが、可能であればすべてを1つに組み合わせる方法について学んだり、アイデアを得たりしています。
うるう年を確認するために、これは私が使用したものです:
public class LeapYear {
public static void main (String[] args) {
int theYear;
System.out.print("Enter the year: ");
theYear = Console.in.readInt();
if (theYear < 100) {
if (theYear > 40) {
theYear = theYear + 1900;
}
else {
theYear = theYear + 2000;
}
}
if (theYear % 4 == 0) {
if (theYear % 100 != 0) {
System.out.println(theYear + " is a leap year.");
}
else if (theYear % 400 == 0) {
System.out.println(theYear + " is a leap year.");
}
else {
System.out.println(theYear + " is not a leap year.");
}
}
else {
System.out.println(theYear + " is not a leap year.");
}
}
}
月と日も読み取るには少し変更する必要があることに気付きましたが、この場合は年を確認するだけです。入力した同じ日付を完全な名前に変換するにはどうすればよいですか? 次のような if ステートメントを作成する必要がありますか。
if (theMonth == 4){
System.out.println("April");
if (theDay == 2){
System.out.print(" 2nd, " + theYear + ".");
}
}
それは多くのハードコードされた作業のようです。次のようなものを取得できるように、必要なハードコーディングの量を制限しようとしています。
Output:
Valid entry (4/2/2013).
It is April 2nd, 2013.
It is not a leap year.
It is day 92.
無効な日付などのエラーが発生した場合、プログラムを実行するのではなく、有効なエントリが受信されるまでプログラムがユーザーに再プロンプトを表示するようにします (「Quit」の書き込み中にプログラムが終了します)。
メイン メソッド (日付の取得) 用にさまざまなクラスを作成し、うるう年かどうか、Conversion メソッド、そしておそらく検証メソッドを確認するだけでよいと思います。