我打算用 Java 创建一个程序来确定输入的年份是否是闰年和有效日期。取那个日期,我希望将其转换为完整的书面名称(2013 年 4 月 2 日 = 2013 年 4 月 2 日),然后确定该日期在一年中的编号(2013 年 4 月 2 日 = 第 92 天)。
有很多程序可以做一个或另一个,但我正在学习方法/获得关于如何将它们组合在一起的想法,如果可能的话。
为了检查闰年,这就是我使用的:
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.
如果出现错误,例如无效日期,我希望程序重新提示用户,直到收到有效条目,而不是必须运行程序(在编写“退出”时结束程序)。
我想我可能只是为主要方法(获取日期)创建不同的类,检查它是否是闰年、转换方法,也许还有验证方法。