首页 > 编程语言 >打印当前月日历.java

打印当前月日历.java

时间:2024-09-20 12:50:13浏览次数:17  
标签:日历 java 打印 System month date out

参考代码:

import java.time.DayOfWeek;
import java.time.LocalDate;

public class CalendarTest {
    public static void main(String[] args) {
        // 1 获取当前日期,并用month和today存储当前月份以及当前号,例如20号,31号
        LocalDate date = LocalDate.now(); // => 2024-09-20
        int month = date.getMonthValue(); // => 9
        int today = date.getDayOfMonth(); // => 20

        // 2 将date设置为本月的第一天,并获取该天是星期几,例如7
        date = date.minusDays(today - 1); // => 2024-09-01
        DayOfWeek weekday = date.getDayOfWeek(); // => SUNDAY
        int value = weekday.getValue(); // => 7
        // 1 = Monday周一, ... , 7 = Sunday周日

        // 3 打印日历头
        System.out.printf("\u2728  Welcome to Month %d! \u2728%n%n", month);
        // %n是一个更为通用和安全的换行方式,特别是在涉及到不同操作系统时
        System.out.println("Mon Tue Wed Thu Fri Sat Sun");
        for (int i = 1; i < value; ++i) { // 本月第一天一般不是周一开始!
            System.out.print("    "); // 注意使用英文括号!
        }

        // 4 打印号,适当时候换行
        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); // 打印完一天就将date更新为下一天
            if (date.getDayOfWeek().getValue() == 1) { // 如果这一天是周一,那么打印之前先换行
                System.out.println();
            }
        }

        if (date.getDayOfWeek().getValue() != 1) { // 如果这一天不是周一,但结束了,也补一个换行
            System.out.println();
        }
    }
}

 

标签:日历,java,打印,System,month,date,out
From: https://www.cnblogs.com/xkxf/p/18422294

相关文章