Calendar跨年时的周计算

1、场景需求

获取日期是当年的第几周时,我们经常通过Calendar获取:calendar.get(Calendar.WEEK_OF_YEAR)

在这里插入图片描述

2022年1月1日既是2022年的第一周也是2021年的最后一周,当进行编程计算时,需要一个确定的标准:

  • 需求一:不同的需求可能周的起始星期不同

  • 需求二-场景一:3号作为新一年的第一周,1号作为去年的最后一周

  • 需求二-场景二:1号作为新一年的第一周

2、参数介绍

  • void setFirstDayOfWeek(int value)

    设置一周的第一天是什么;例如,美国的SUNDAY ,法国的MONDAY

    参数:value – 给定的一周的第一天。

  • void setMinimalDaysInFirstWeek(int value)

    设置一年中第一周所需的最少天数;例如,如果第一周被定义为包含一年中第一个月的第一天的一周,则使用值 1 调用此方法。如果必须是整周,则使用值 7。

    参数:value – 一年中第一周所需的给定最少天数。

3、参数配置

  • 需求一:
    • 从周一算作一周的开始:setFirstDayOfWeek(Calendar.MONDAY);
    • 从周日算作一周的开始:setFirstDayOfWeek(Calendar.SUNDAY);
  • 需求二:
    • 定义一年中第一周所需要的最少天数
    • 超过天数则会算作第一周,例如2022年setMinimalDaysInFirstWeek(1),则1月1日为2022年的第一周;
    • 未超过天数则会从下周开始计算为当年的第一周,例如2022年setMinimalDaysInFirstWeek(3),则1月1日算作2021年的最后一周,1月3日作为2022年的第一周。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

~鱼缸里的猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值