java周切分,按照指定weekday为一周的开始

本文介绍如何在Java中实现自定义周概念,以周六为一周的开始,详细阐述了从输入日期计算周号的过程,包括处理跨年情况,并提供了相应代码示例。
摘要由CSDN通过智能技术生成

目标:扩充周的概念为周六到周五、周四到周三。也即认为一周的开始是周六而不是java默认的周末

输入:start_date,end_date

输出:XX年XX周

首先,周切分

以周六到周五为例,先拿到start_date所在的年份的第一个周六FirstSaturday作为第一周,将start_date向后拨到第一个周六,然后计算start_date与FirstSaturday之间相差了多少天,在整除7即可知道start_date所在的周六是本年的第几周。

end_date的处理与start_date类似,需要注意跨年的情况,将end_date向前拨到第一个周五。

对于FirstSaturday的计算时,注意,不仅要调整年、月、日,还要调整时、分、秒。如果不调整时、分、秒,那么计算出来的FirstSaturday的时分秒将会是当前的时分秒,在计算start_date与FirstSaturday之间相差多少天时,由于采用的是时间戳相减,而时间上不到24小时就会认为不是一天,就会带来误差。具体例子可以看:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值