日历Demo

这篇博客介绍了如何利用Java的LocalDate类获取每个月的第一天,并详细解释了minusDays方法的用法。同时,文章讲解了System.out.printf的格式控制符,包括%d用于整数和%f用于浮点数的输出,以及如何查询API获取更多LocalDate的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now(); // localDate 2018-09-25
        int monthValue = localDate.getMonthValue(); // 得到月份 9
        int dayOfMonth = localDate.getDayOfMonth(); // 得到日期 25
        localDate = localDate.minusDays(dayOfMonth - 1); // minusDays 当前对象减去指定的天数
        DayOfWeek week = localDate.getDayOfWeek(); // SATURDAY
        int value = week.getValue(); // 将日期换为数字,星期一就是1,星期二就是2,以此类推,这里value是6

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

        while(localDate.getMonthValue() == monthValue){
            System.out.printf("%3d", localDate.getDayOfMonth());
            if (localDate.getDayOfMonth() == dayOfMonth){
                System.out.print("*"); // 将今日的日期后面加上一个*
            }else {
                System.out.print(" ");
            }
            if (localDate.getDayOfWeek().getValue() == 7){
                System.out.println();
            }
            localDate = localDate.plusDays(1);
        }
    }

通过 localDate = localDate.minusDays(dayOfMonth - 1),来得到每个月的第一天,minusDays为减去参数天数

LocalDate中的其他方法在结尾显示


System.out.printf的使用方法为,第一个参数是格式控制符,格式控制符以一个%开始,一个字母结束,字母规定了方法按照何种方式打印这个值,例如d表示十进制整数(int),f表示浮点数(double)

格式控制符结果
%d整数
%8d整数,右对齐,输出宽度为8
-6%整数,左对齐,输出宽度为6
%f浮点数
%8f浮点数,右对齐,输出宽度为8
%.2f浮点数,精确到百分位
%16.3f浮点数,精确到千分位,输出宽度为16

String同理,只是将d换成s


以下是LocalDate中的常用方法,其余可以查询API

方法名返回值类型对该方法的解释
getYear()int获取当前日期的年份
getMonth()Month获取当前日期的月份对象
getMonthValue()int获取当前日期是第几月
getDayOfWeek()DayOfWeek表示该对象表示的日期是星期几
getDayOfMonth()int表示该对象表示的日期是这个月第几天
getDayOfYear()int表示该对象表示的日期是今年第几天
withYear(int year)LocalDate修改当前对象的年份
withMonth(int month)LocalDate修改当前对象的月份
withDayOfMonth(int dayOfMonth)LocalDate修改当前对象在当月的日期
isLeapYear()boolean是否是闰年
lengthOfMonth()int这个月有多少天
lengthOfYear()int该对象表示的年份有多少天(365或者366)
plusYears(long yearsToAdd)LocalDate当前对象增加指定的年份数
plusMonths(long monthsToAdd)LocalDate当前对象增加指定的月份数
plusWeeks(long weeksToAdd)LocalDate当前对象增加指定的周数
plusDays(long daysToAdd)LocalDate当前对象增加指定的天数
minusYears(long yearsToSubtract)LocalDate当前对象减去指定的年数
minusMonths(long monthsToSubtract)LocalDate当前对象减去注定的月数
minusWeeks(long weeksToSubtract)LocalDate当前对象减去指定的周数
minusDays(long daysToSubtract)LocalDate当前对象减去指定的天数
compareTo(ChronoLocalDate other)int比较当前对象和other对象在时间上的大小,返回值如果为正,则当前对象时间较晚
isBefore(ChronoLocalDate other)boolean比较当前对象日期是否在other对象日期之前
isAfter(ChronoLocalDate other)boolean比较当前对象日期是否在other对象日期之后
isEqual(ChronoLocalDate other)boolean比较两个日期对象是否相等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值