java8 date获取第一个星期几,最后一个星期日LocalDate

java8 date强大的api让你实现以前想都不敢想的操作,
如一个简单的问题:
3年4个月后的最后一个星期五是哪天?
是不是看着日历都要翻半天,更别说用代码来实现了。
莫急,先看看基本用法,代码:

LocalDate date = LocalDate.now();
System.out.println(date.with(TemporalAdjusters.firstDayOfMonth()));// 当月第一天
System.out.println(date.with(TemporalAdjusters.lastDayOfMonth())); // 当月的最后一天

// 1表示当月第一个  星期天  正数表示,第几个星期天,可能会超过当月
System.out.println(date.with(TemporalAdjusters.dayOfWeekInMonth(1,DayOfWeek.SUNDAY)));
// 注 -1表示当月最后一个  星期天  负数表示: 如-4 =-1 -3  比表示当前月最后一天,往前3星期
System.out.println(date.with(TemporalAdjusters.dayOfWeekInMonth(-1,DayOfWeek.SUNDAY)));
// 看看-3对不对,当月最后一天,减2星期
System.out.println(date.with(TemporalAdjusters.dayOfWeekInMonth(-3,DayOfWeek.SUNDAY)));
// 注 0表示上月最后一个  星期天
System.out.println(date.with(TemporalAdjusters.dayOfWeekInMonth(0,DayOfWeek.SUNDAY)));

//花式组合: 3个月的最后一个星期三,赶紧翻翻日历看对不对
System.out.println(date.plusMonths(3)
.with(TemporalAdjusters.dayOfWeekInMonth(-1,DayOfWeek.WEDNESDAY)));

现在回归到最初的问题: 3年4个月后的最后一个星期五是哪天?

System.out.println(date.plusYears(3).plusMonths(4)
              .with(TemporalAdjusters.dayOfWeekInMonth(-1,DayOfWeek.FRIDAY)));
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值