解决对给定一个时间段补全成整周并且按周分割时间的问题

本文介绍了如何解决将给定不超过30天的时间段补全成整周,并按照中国周(周一为一周开始)进行分割的问题。通过向前或向后补全时间,调整Calendar设置,计算月份中的周数,以及测试验证,确保满足客户需求。
摘要由CSDN通过智能技术生成

解决对给定一个时间段补全成整周并且按中国周分割时间的问题

问题:

最近项目维护遇到客户提的一个需求,原来项目中有一个日报功能,现在客户需要将日报改为周报。

要求:给定一个时间段(时间不超过30天),要求将时间补成整周按周分割并且得到该周为几几年几月第几周。周一为一周的开始,如果周跨月的话,按周一所在的月计算。

解决方案:

1 将时间补为整周

  1. 向前补齐

    public String roundForward(String beginTime) throws ParseException {
         
         final int  monday = 2;
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Date date = sdf.parse(beginTime);
         Calendar calendar = Calendar.getInstance();
         calendar.setFirstDayOfWeek(Calendar.MONDAY);
         calendar.setTime(date);
         if (calendar.get(Calendar.DAY_OF_WEEK) != monday){
         
             int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);
             if(dayWeek==1){
         
                 dayWeek = 8;
             }
             calendar.add(Calendar.DATE,-(dayWeek-2));
             System.out.println(sdf.format(calendar.getTime()));
             beginTime = sdf.format(calendar.getTime());
         }
         return beginTime;
     }
    
  2. 向后补齐

    public String roundBackward(String endTime) throws ParseException {
         
         final int  sunday = 1;
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         Date date = sdf.parse(endTime);
         Calendar calendar = Calendar.getInstance();
         calendar.setFirstDayOfWeek(Calendar.MONDAY);
         calendar.setTime(date);
         if (calendar.get(Calendar.DAY_OF_WEEK) != sunday){
         
             int dayWeek = calendar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值