一、需求:
- 以周一作为每周的开始,周日作为每周的结束。
- 当遇到某月的第一天非周一时,以这天作为这月第一周的开始天。
- 当遇到某月的最后一天非周日时,以这天作为这月最后一周的结束天。
如上图:
2020年3月第一周是3月1日;
2020年3月最后一周是3月30日到31日。
首先要知道java对周的处理是从星期天开始,3.1-3.7号为第一周,以此类推,2020年3月一共为5周,和我们的需求就不一致
获取2020年3月4号在该月所对应的周数为第一周,依然不对
二:实现
/**
* 获取当前时间为该月的第几周
* @param date
* @return
*/
public static int getWeekOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//获取对应的周数
int week = calendar.get(Calendar.WEEK_OF_MONTH);
//如果当天是星期天,会按下一