使用Calendar WEEK_OF_YEAR获取今天第几周的问题

image.png

初始化一个日历:

Calendar calendar = Calendar.getInstance();

获取今天所在周为本年度的第几周

int week = calendar.get(Calendar.WEEK_OF_YEAR);

但是,今天(2021-12-27)有点特殊,今天所在的周跨越了两个年度,即27(周一)~21(周五)是21年的,而周六周日到了22年

一次,如果按照上述来获取,返回的周数是 1 

因此,需要返回正确周数,需要做个判断

if (calendar.get(Calendar.MONTH)>=11 && week<=1 ){
week +=52;
}

这样,一旦当前是12月,且获取到的周数是1,那么就说明这一周是“跨年”了,需要纠正。

qrcode