Java-显示当前月的日历

public class CalendarTest {

    public static void main(String[] args) {
        LocalDate date = LocalDate.now(); // 获取当前日期
        int month = date.getMonthValue(); // 获取当前日期是几月
        int today = date.getDayOfMonth(); // 获取当前日期是这个月的第几天

        date = date.minusDays(today - 1);
        DayOfWeek weekday = date.getDayOfWeek();
        int value = weekday.getValue(); // 算出来这个月的第一天是星期几

        System.out.println("Mon Tue Wed Thu Fri Sat Sun");
        for (int i = 1; i < value; i++)
            System.out.print("   ");

        while (date.getMonthValue() == month) {
            System.out.printf("%3d", date.getDayOfMonth());
            if (date.getDayOfMonth() == today)
                System.out.print("*");
            else
                System.out.print(" ");

            date = date.plusDays(1);
            if (date.getDayOfWeek().getValue() == 1)
                System.out.println();
        }
        if (date.getDayOfWeek().getValue() != 1)
            System.out.println();
    }

}

显示结果

或者使用Calendar也可以:

public class PrintCalendar {

	private static Scanner scanner;

	public static void main(String[] args) throws ParseException {
		
		// 获取输入的日期
		System.out.println("请输入日期(格式:2019-11-30):");
		scanner = new Scanner(System.in);
		String string = scanner.nextLine();

		// 字符串转换为时间类
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Date date = format.parse(string);

		// 时间类转换为日期类
		Calendar calendar = new GregorianCalendar();
		calendar.setTime(date);

		int day = calendar.get(Calendar.DAY_OF_MONTH); // 获取输入的日期是那一天
		
		// 接下来就打印
		System.out.println("日\t一\t二\t三\t四\t五\t六");

		calendar.set(Calendar.DAY_OF_MONTH, 1);
		for (int i = 0; i < calendar.get(Calendar.DAY_OF_WEEK) - 1; i++) {
			System.out.print("\t");
		}

		int maxDay = calendar.getActualMaximum(Calendar.DATE);

		for (int i = 1; i <= maxDay; i++) {
			if (day == calendar.get(Calendar.DAY_OF_MONTH)) {
				System.out.print(calendar.get(Calendar.DAY_OF_MONTH) + "*\t");
			} else {
				System.out.print(calendar.get(Calendar.DAY_OF_MONTH) + "\t");
			}
			if ((calendar.get(Calendar.DAY_OF_WEEK)) == Calendar.SATURDAY) {
				System.out.println();
			}
			calendar.add(Calendar.DAY_OF_MONTH, 1);
		}
	}

}

发布了23 篇原创文章 · 获赞 1 · 访问量 1885

猜你喜欢

转载自blog.csdn.net/xianyu9264/article/details/101915353