LocalDate的minusDays方法详解

LocalDate的minusDays方法详解

public LocalDate minusDays(long daysToSubtract)

返回此LocalDate的副本,并减去指定的天数。

该方法根据需要减去月份和年份字段的日期字段减去指定的金额,以确保结果保持有效。 如果超过最大/最小年份,结果将无效。

例如,2009-01-01减去一天会导致2008-12-31。

此实例是不可变的,不受此方法调用的影响。

  • 参数

    daysToSubtract - 减去的日子可能是负数

  • 结果

    一个 LocalDate基于这个日期减去,而不是null

  • 异常

    DateTimeException - 如果结果超出支持的日期范围

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

public class CalendarTest {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        int month = date.getMonthValue();
        System.out.println("month = " + month);
        int today = date.getDayOfMonth();
        System.out.println("today = " + today);

        date = date.minusDays(today - 1);
        System.out.println("date = " + date);

        System.out.println("today - 1 = " + (today - 1));

        LocalDate date2 = LocalDate.now();
        int day = date2.getDayOfMonth();
        date2 = date2.minusDays(15);

        System.out.println("day = " + day);
        System.out.println("date2 = " + date2);

        DayOfWeek weekday = date.getDayOfWeek();
        System.out.println("weekday = " + weekday);

        int value = weekday.getValue();
        System.out.println("value = " + value);

        System.out.println("getMonthValue = " + date.getMonthValue());

        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();
        }
    }
}

运行结果:

month = 4
today = 17
date = 2023-04-01
today - 1 = 16
day = 17
date2 = 2023-04-02
weekday = SATURDAY
value = 6
getMonthValue = 4
Mon Tue Wed Thu Fri Sat Sun
                 1   2 
  3   4   5   6   7   8   9 
 10  11  12  13  14  15  16 
 17* 18  19  20  21  22  23 
 24  25  26  27  28  29  30 

Process finished with exit code 0
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小葛先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值