/**  * 返回指定年度的所有周。List中包含的是String[2]对象<br>  * string[0]本周的开始日期,string[1]是本周的结束日期。<br>  * 日期的格式为yyyy-MM-dd。<br>  * 每年的第一个周,必须包含星期一且是完整的七天。<br>  * 例如:2009年的第一个周开始日期为2009-01-05,结束日期为2009-01-11。 <br>  * 星期一在哪一年,那么包含这个星期的周就是哪一年的周。<br>  * 例如:2008-12-29是星期一,2009-01-04是星期日,哪么这个周就是2008年度的最后一个周。<br>  *   * @param year 格式 yyyy  ,必须大于1900年度 小于9999年   * @return   */ public static List<String[]> getWeeksByYear(final int year){  if(year<1900 || year >9999){   throw new NullPointerException("年度必须大于等于1900年小于等于9999年");  }  //实现思路,首先计算当年有多少个周,然后找到每个周的开始日期和结束日期  //  Calendar calendar = new GregorianCalendar();//  // 在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。//  calendar.setFirstDayOfWeek(Calendar.MONDAY); //设置每周的第一天为星期一//  calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //每周从周一开始  //      上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。  //  calendar.setMinimalDaysInFirstWeek(7);  //设置每周最少为7天//  calendar.set(Calendar.YEAR, year); // 设置年度为指定的年//  //首先计算当年有多少个周,每年都至少有52个周,个别年度有53个周  int weeks = getWeekNumByYear(year);//  System.out.println(year+"共有"+weeks+"个周");  List<String[]> result = new ArrayList<String[]>(weeks);  for(int i=1;i<=weeks;i++){   String[] tempWeek = new String[2];   tempWeek[0] = getYearWeekFirstDay(year,i);   tempWeek[1] = getYearWeekEndDay (year,i);//或者使用下面的代码,不过发现效率更低   //   tempWeek[0] = getDateAdd(firstWeekDay,(i-1)*7+0);//   tempWeek[1] = getDateAdd(firstWeekDay,(i-1)*7+6);      result.add(tempWeek);//   System.out.println(i+"="+tempWeek[0]+"_"+tempWeek[1]);  }  return result; } /**  * 计算指定年度共有多少个周。  * @param year 格式 yyyy  ,必须大于1900年度 小于9999年   * @return   */ public static int getWeekNumByYear(final int year){  if(year<1900 || year >9999){   throw new NullPointerException("年度必须大于等于1900年小于等于9999年");  }  int result = 52;//每年至少有52个周 ,最多有53个周。  String date = getYearWeekFirstDay(year,53);  if(date.substring(0, 4).equals(year+"")){ //判断年度是否相符,如果相符说明有53个周。   result = 53;  }  return result; }     /**     * 计算某年某周的开始日期     * @param yearNum 格式 yyyy  ,必须大于1900年度 小于9999年      * @param weekNum 1到52或者53     * @return 日期,格式为yyyy-MM-dd     */    public static String getYearWeekFirstDay(int yearNum,int weekNum)  {  if(yearNum<1900 || yearNum >9999){   throw new NullPointerException("年度必须大于等于1900年小于等于9999年");  }      Calendar cal = Calendar.getInstance();      cal.setFirstDayOfWeek(Calendar.MONDAY); //设置每周的第一天为星期一      cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//每周从周一开始//      上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。      cal.setMinimalDaysInFirstWeek(7);  //设置每周最少为7天           cal.set(Calendar.YEAR, yearNum);      cal.set(Calendar.WEEK_OF_YEAR, weekNum);           //分别取得当前日期的年、月、日      return getFormatDate(cal.getTime());    }    /**     * 计算某年某周的结束日期     * @param yearNum 格式 yyyy  ,必须大于1900年度 小于9999年      * @param weekNum 1到52或者53     * @return 日期,格式为yyyy-MM-dd     */    public static String getYearWeekEndDay(int yearNum,int weekNum)  {  if(yearNum<1900 || yearNum >9999){   throw new NullPointerException("年度必须大于等于1900年小于等于9999年");  }           Calendar cal = Calendar.getInstance();      cal.setFirstDayOfWeek(Calendar.MONDAY); //设置每周的第一天为星期一      cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);//每周从周一开始//      上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。            cal.setMinimalDaysInFirstWeek(7);  //设置每周最少为7天               cal.set(Calendar.YEAR, yearNum);      cal.set(Calendar.WEEK_OF_YEAR, weekNum);            return getFormatDate(cal.getTime());    }

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

计算一年有多少个周,每个周的开始日期和结束日期是什么相关推荐

  1. 计算一年有多少个周 每个周的开始日期和结束日期是什么

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! /** ...

  2. php 计算指定年份的周总数与及第几周的开始日期和结束日期(从周一开始)

    /** * 获取某年第几周的开始日期和结束日期 * @param int $year * @param int $week 第几周; */ public function weekday($year, ...

  3. 转:[C#]获取某年指定周的开始日期和结束日期的通用方法

    来自:http://blog.csdn.net/vrhero/archive/2008/01/13/2042481.aspx /// <summary> /// 获取一年中指定的一周的开始 ...

  4. 获取某个周在本年的开始日期和结束日期

    传入 年份 和 本年的多少周,计算改周在本年的开始日期和结束日期 /** @Purpose : 根据所给年份和该年的第几周,得出该周在本年的开始日期和结束日期* @time : 2017/11/03 ...

  5. c#日期转换周几_C#获取每个年,月,周的起始日期和结束日期的方法

    这篇文章主要介绍了C#获取每个年,月,周的起始日期和结束日期的方法,涉及C#时间与日期基本操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了C#获取每个年,月,周的起始日期和结束日期 ...

  6. 返回指定月份的周列表 包含 周序号、开始日期、结束日期(不包含周末)

    /*** 返回当前年月的周列表 包含 周序号.开始日期.结束日期(不包含周末)* @param year 年* @param month 月* @returns {Array} */function ...

  7. oracle 获取每周五,Oracle获取周几以及每周对应得开始日期和结束日期

    Oracle获取周几以及每周对应得开始日期和结束日期 --获取近一年周的开始日期和结束日期,从星期日开始 select '2014'||sunday.the_week,decode(sign(sund ...

  8. oracle根据日期显示星期几,Oracle获取周几以及每周对应得开始日期和结束日期

    Oracle获取周几以及每周对应得开始日期和结束日期 --获取近一年周的开始日期和结束日期,从星期日开始 select '2014'||sunday.the_week,decode(sign(sund ...

  9. js计算用开始日期和结束日期计算天数

    function taxMonese(formula_value){  var num = new Number(); var dateDiffs; var start_date="2017 ...

最新文章

  1. Spring-boot logback日志处理
  2. Intel Realsense D435 USB线长、光纤线长测试(使用普通USB3.0数据线最长不能超过4M,使用普通USB3.0数据线+USB3.0光纤数据线,不能超过1+5=6M)
  3. python旋转矩阵_python – 来自两个3D点的Euler角度和旋转矩阵
  4. 【英语学习】【Level 07】U02 Live Work L5 This is where we work
  5. js rsa解密中文乱码_python解析JS爬取漫画网站--动态爬虫
  6. PCL之积分图法线估计
  7. android camera预览帧,android camera2处理每一帧并显示其预览
  8. 适合于图像处理方向的SCI期刊杂志列表【转】
  9. 不格式化U盘的情况下部署WinPE
  10. Apache Shiro框架
  11. oki5530sc打印错误_OKI5530sc调整方法
  12. 永中云编辑(java版)
  13. 想搬去苏州生活了。。
  14. EBS R12.2 ADOP (R12.2 AD Online Patching) - 3
  15. 阿里巴巴2018秋招总结
  16. 13种权重的计算方法
  17. 假设检验中两类错误及最小样本量计算
  18. 《2019全球货运代理TOP25、全球第三方物流Top50排行榜》
  19. 标准差越大越集中_中国大学MOOC: 正态分布的标准差越大,其概率密度曲线越高越集中。...
  20. html、js实现分页展示的功能

热门文章

  1. Android APP必备高级功能,消息推送之MQTT
  2. 【编译器】Dev C++ 执行程序 显示“Fail to excute **/**/ .exe, Error: 0 操作成功完成。{未解决}
  3. 健身泡沫轴可以带上高铁吗_15大最佳泡沫轴肌肉放松训练,90%的健身者都不会!...
  4. 达林顿驱动器ULN2003,ULN2803使用注意要点
  5. ROS2极简总结-Nav2-地图和自适应蒙特卡洛定位
  6. 卫龙上市首日破发:高瓴、红杉、腾讯等账面亏损,刘卫平为董事长
  7. Ansible playbook Vault 加密
  8. vue过渡动画之——过渡类名
  9. STM32F1的I/O最大能承受多大电压
  10. halcon-通过视觉提取血管造影中血管并测量直径