【java获取ISO 8601最大周数】

ISO 8601 关于周的规则

(1)该年的1月1日,如果是周一、周二、周三或者周四,那么1月1日所在的周就是该年的第一周;
(2)该年的1月1日,如果是周五,周六或者周日,那么1月1日所在的周就是上一年的最后一周;
(3)每个周以周一开始,周日结束。

java代码实现

import java.time.LocalDate;



/**
* @param year 年份yyyy
* @return string yyyyww
* @throws BusinessException
*/
public static String getMaxWeekOfYear(String year) throws BusinessException {
	if (StringUtil.isEmpty(year))
		throw new BusinessException("year is null");
	int yearInt = NumberUtils.toInt(year);
	int week = LocalDate.of(yearInt, 12, 31).get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
	if (week != MAX_WEEK_OF_YEAR)
		week = 52;
	return String.format("%04d%02d", yearInt, week);
}

运行结果

输入:2021
输出:202152

输入:2026
输出:202653


版权声明:本文为ws271原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。