DD/MM/YY 入力を DD/MM/YYYY 入力に変換するプログラムの一部を実装しようとしています。if ステートメントを使用して、入力数が 13 未満かどうかをプログラムに確認し、そうであれば、入力数に 2000 を追加して、12 が入力された場合は 2012 という結果を返します。数値が 13 を超えて 100 未満の場合、プログラムに 1900 を追加するように指示しました。
私はJavaに非常に慣れていないため、これまでに克服できなかった2つのコンパイラエラーが発生しています(36から減少、笑)。コンパイラ エラーは「ステートメントではありません」です。両方とも、else ステートメントのある行を参照します。コードは次のとおりです (明らかにまだ WIP であり、まだ完成したプログラムではありません) -
import java.util.*;
public class FindDay4Birthdate
{
public static void main(String[] args)
{
String dayInput = "";
String monthInput = "";
String yearInput = "";
int bday;
int bmonth;
int byear;
String daysList[] = {
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
};
String monthList[] = {
"January", "Feburary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
};
Scanner sc = new Scanner(System. in );
sc.useDelimiter("[-/.\\s]");
System.out.print("Please enter your date of birth (dd/mm/yyyy) - ");
if (sc.hasNext())
{
dayInput = sc.next();
monthInput = sc.next();
yearInput = sc.next();
bday = Integer.parseInt(dayInput);
bmonth = Integer.parseInt(monthInput);
byear = Integer.parseInt(yearInput);
} // end if statement
if (byear = (byear > 0));
{
if (byear = (byear < 13))
{
byear = (byear + 2000);
}
else(byear = (byear > 13 && byear < 100));
{
byear = (byear + 1900);
}
} // end if statement
bmonth -= 1; //set month to correct array
String day = daysList[bday];
String month = monthList[bmonth];
int yearCount = (byear - 1901);
int daysInYear = 365;
int dayCount = (daysInYear * yearCount);
System.out.println("You were born on " + day + " " + bday + " " + month + " " + byear);
System.out.println(yearCount + " " + daysInYear + " " + dayCount); // test output only
/* Todo
*
*TASK 2 -
*Implement daysPerMonth - Feb set to 28 days
*Use count to determine correct day for birthdate
*
*TASK 3 -
*User input needs to allow char based months and 2 digit years need to be converted to 4 digit years
*Implement leap years */
}
}