周的开始和结束时间

    /**
      * 计算某年某周的开始日期
      * @return 日期,格式为yyyy-MM-dd
      */
     public static String getYearWeekFirstDay(int yearNo, int weekNo) {
          Calendar cal = Calendar.getInstance();
          cal.setFirstDayOfWeek(Calendar.SUNDAY); // 设置每周的第一天为星期一
          cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);// 每周从周一开始
          // 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。
          cal.setMinimalDaysInFirstWeek(7); // 设置每周最少为7天
          cal.set(Calendar.YEAR, yearNo);
          cal.set(Calendar.WEEK_OF_YEAR, weekNo);
          // 分别取得当前日期的年、月、日
          String firstDay = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
          String monthDay = new SimpleDateFormat("MM.dd").format(cal.getTime());

          if(yearNo>Integer.parseInt(firstDay.split("-")[0])) {//第1周从1月1号开始
                 if(firstDay.split("-")[2].equals("25")) {
                     return "";
                 }else {
                     return "01.01";
                 }
          }else {
              return monthDay;
         }  
     }

     /**
      * 计算某年某周的结束日期
      * @return 日期,格式为yyyy-MM-dd
      */
     public static String getYearWeekEndDay(int yearNo, int weekNo) {
          Calendar cal = Calendar.getInstance();
          cal.setFirstDayOfWeek(Calendar.SUNDAY); // 设置每周的第一天为星期一
          cal.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);// 每周从周一开始
          // 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。
          cal.setMinimalDaysInFirstWeek(7); // 设置每周最少为7天
          cal.set(Calendar.YEAR, yearNo);
          cal.set(Calendar.WEEK_OF_YEAR, weekNo);
          String endDay = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
          String monthDay = new SimpleDateFormat("MM.dd").format(cal.getTime());

          if(yearNo!=Integer.parseInt(endDay.split("-")[0])) {
                if(yearNo<Integer.parseInt(endDay.split("-")[0])) {
                     return "12.31";
                }else {
                     return "";
                }       
          }else {
              return monthDay;
         }  
     }


     /**
      * 计算某年某周的开始日期 跨年周
      * @return 日期,格式为yyyy-MM-dd
      */
     public static String getCrossYearWeekFirstDay(int yearNo, int weekNo) {
          Calendar cal = Calendar.getInstance();
          cal.setFirstDayOfWeek(Calendar.SUNDAY); // 设置每周的第一天为星期一
          cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);// 每周从周一开始
          // 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。
          cal.setMinimalDaysInFirstWeek(7); // 设置每周最少为7天
          cal.set(Calendar.YEAR, yearNo);
          cal.set(Calendar.WEEK_OF_YEAR, weekNo);
          // 分别取得当前日期的年、月、日
          String monthDay = new SimpleDateFormat("MM.dd").format(cal.getTime());

         return monthDay;
     }

     /**
      * 计算某年某周的结束日期 跨年周
      * @return 日期,格式为yyyy-MM-dd
      */
     public static String getCrossYearWeekEndDay(int yearNo, int weekNo) {
          Calendar cal = Calendar.getInstance();
          cal.setFirstDayOfWeek(Calendar.SUNDAY); // 设置每周的第一天为星期一
          cal.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY);// 每周从周一开始
          // 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。
          cal.setMinimalDaysInFirstWeek(7); // 设置每周最少为7天
          cal.set(Calendar.YEAR, yearNo);
          cal.set(Calendar.WEEK_OF_YEAR, weekNo);
          String monthDay = new SimpleDateFormat("MM.dd").format(cal.getTime());

         return monthDay;
     }


     //获取 某日是某年的第几周
     public static int getWeekByDay(String day) throws ParseException {
          SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
          Calendar calendar = Calendar.getInstance();
          calendar.setFirstDayOfWeek(Calendar.SUNDAY);
          calendar.setTime(format.parse(day));

         return calendar.get(Calendar.WEEK_OF_YEAR);
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值