注解
1、Java的Calendar使用。会判断合法日期,会判断某日是星期几。会判断两个日期的先后。
2、题目给了一个条件:1752年9月2号之后,第二天变成1752年9月14号。判断星期几的时候,要用上这个条件。
代码
import java.util.Calendar;
import java.util.Scanner;
public class Main {
private static String[] week = { "", "Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"};
private static String[] month = { "January", "February", "March", "April",
"May", "June", "July", "August", "September",
"October", "November", "December" };
public static void main(String[] args) {
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.set(1752, 8, 13);
cal2.set(1752, 8, 3);
Scanner sc = new Scanner(System.in);
int mm = sc.nextInt();
int dd = sc.nextInt();
int yy = sc.nextInt();
while (mm != 0 || dd != 0 || yy != 0) {
Calendar cal = Calendar.getInstance();
cal.setLenient(false);
try {
cal.set(yy, mm - 1, dd);
cal.get(Calendar.YEAR);
cal.get(Calendar.MONTH);
cal.get(Calendar.DATE);
int num = 0;
if (cal.compareTo(cal1) > 0) {
num = cal.get(Calendar.DAY_OF_WEEK);
} else if (cal.compareTo(cal2) < 0) {
num = (cal.get(Calendar.DAY_OF_WEEK) + 4) % 7;
} else {
System.out.println(mm + "/" + dd + "/" + yy + " is an invalid date.");
}
System.out.println(month[mm - 1] + " " + dd + ", " + yy + " is a " + week[num]);
} catch (Exception e) {
System.out.println(mm + "/" + dd + "/" + yy + " is an invalid date.");
}
mm = sc.nextInt();
dd = sc.nextInt();
yy = sc.nextInt();
}
sc.close();
}
}