目标:扩充周的概念为周六到周五、周四到周三。也即认为一周的开始是周六而不是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小时就会认为不是一天,就会带来误差。具体例子可以看: