Java 使用Scanner输入一个年月日,把该月的日历样子打印在控制台, 当前这一天额外使用一个*
进行标记
源代码:
public class Test5 {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("输入一个年月日:");
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String s = sc.next();
Date parse = sf.parse(s);
Calendar instance = Calendar.getInstance();
instance.setTime(parse);
int maxDays = instance.getActualMaximum(Calendar.DAY_OF_MONTH);
instance.set(Calendar.DATE, 1);
int n = instance.get(Calendar.DAY_OF_WEEK);
// System.out.println(n);
String[] strings = new String[]{"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
for (int i = 0; i < strings.length; i++) {
System.out.print(strings[i] + "\t");
}
System.out.println();
for (int i = 1; i <= n - 1; i++) {
System.out.print("\t");
}
for (int i = 1; i <= maxDays; i++) {
if (i == parse.getDate()) {
System.out.print(i + "*\t");
} else {
System.out.print(i + "\t");
if ((i + n - 1) % 7 == 0) {
System.out.println();
}
}
}
System.out.println();
}
}
}