package Zking.Swing控制台日历;
import java.util.Calendar;
import java.util.Scanner;
public class 控制台日历s3 {
public static void main(String[] args) {
// 打印日历星期栏
Scanner s1 = new Scanner(System.in);
while (true) {
System.out.println("=====================欢迎来到万年历=========================");
System.out.println("请输入你想查询的年份:(例如:2022)");
int i1 = s1.nextInt();
System.out.println("请输入你想查询的月份:(例如:4)");
int i2 = s1.nextInt();
System.out.println("===========查询" + i1 + "年" + i2 + "月的万年历如下=========================");
int year = i1;
int month = i2;
int[] nums = new int[42];
int Index = 0;
System.out.println("一\t二\t三\t四\t五\t六\t日");
// 获取当前时间,得出这个月1号是星期几
Calendar c1 = Calendar.getInstance();
c1.set(year, month - 1, 1);
int week = c1.get(Calendar.DAY_OF_WEEK) - 1;
// System.out.println("week:" + week);
week = (week == 0) ? 7 : week;// 星期日等于1
Calendar c2 = Calendar.getInstance();
c2.set(year, month - 1, 1);
c2.add(Calendar.MONTH, -1);
int c2Date = c1.getActualMaximum(Calendar.DAY_OF_MONTH) - week + 2;
for (int i = 1; i < week; i++) {
nums[Index++] = c2Date++;
// System.out.print("**\t");
// System.out.print(c2Date++ + "\t");
}
int day = c1.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int i = 1; i <= day; i++) {
nums[Index++] = i;
// System.out.print(i + "\t");
// if ((week + i - 1) % 7 == 0) {
// System.out.println();
// }
}
int nextDate = nums.length - Index;
for (int i = 1; i <= nextDate; i++) {
nums[Index++] = i;
}
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i] + "\t");
if ((i + 1) % 7 == 0) {
System.out.println();
}
}
System.out.println("=========================================================");
System.out.println();
}
}
}