• 摘要:从图中可以看出2016年的1月1日是从周五开始的,意思就是说2016年1月1日所在的这一周既是2015年的最后一周也是2016年的第一周,也就说这一周跨年了。编程是要求严谨的,这么算最后肯定会出问题,这就需要一个标准。
  • 从图中可以看出2016年的1月1日是从周五开始的,意思就是说2016年1月1日所在的这一周既是2015年的最后一周也是2016年的第一周,也就说这一周跨年了。编程是要求严谨的,这么算最后肯定会出问题,这就需要一个标准。

    先看下面两段代码的结果:

     public void testGetWeekNo1() throws ParseException{DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setTime(dateFormat.parse("2016-1-1"));int weekNo = calendar.get(Calendar.WEEK_OF_YEAR);System.out.println("第"+weekNo+"周");}

    输出结果:第1周

    意思是2016年1月1日是2016年的第1周

     public void testGetWeekNo2() throws ParseException{DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setMinimalDaysInFirstWeek(4);calendar.setTime(dateFormat.parse("2016-1-1"));int weekNo = calendar.get(Calendar.WEEK_OF_YEAR);System.out.println("第"+weekNo+"周");}

    输出结果:第52周

    意思是2016年1月1日是2015年的第52周

        public void testGetWeekNo3() throws ParseException{DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.setMinimalDaysInFirstWeek(4);calendar.setTime(dateFormat.parse("2016-1-4"));int weekNo = calendar.get(Calendar.WEEK_OF_YEAR);System.out.println("第"+weekNo+"周");}

    输出结果:第1周

    意思是2016年1月4日是2016年的第1周(没说是周一)

    其中起到关键作用的代码是下面这段:

    calendar.setMinimalDaysInFirstWeek(4);

    意思是第一周的最小天数为4。也可以设置别的最小天数,这样一年的开始的第一周就能确定下来,以后的周数的都能准确的推算出来。

    根据一年中的周数去获取日期也能准确获取到:

        public void testGetTimeByWeekNo() throws ParseException{DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");Calendar calendar = Calendar.getInstance();calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);calendar.set(Calendar.YEAR, 2016);calendar.set(Calendar.WEEK_OF_YEAR, 1);calendar.setMinimalDaysInFirstWeek(4);String time = dateFormat.format(calendar.getTime()).toString();System.out.println(time);}

    输出结果:2016-01-04

    意思是2016年的1月4日是2016年的第一周的周一

转载于:https://www.cnblogs.com/powerwu/articles/9950750.html

Java关于周跨年的周数计算相关推荐

  1. java计算今天是今年的第几周_java calendar类根据当前日期时间,计算当前日期在当前月是第几周,与周跨月问题,...

    第一步 先根据当前日期时间 计算出本周的开始时间与结束日期 第二步 判断当前日期大于等于本周开始日期,并且当前日期小于等于本周结束日期, 就把本周开始日期当做条件计算出当前日期是第几周 // 周跨月也 ...

  2. 2018-2019-20172329 《Java软件结构与数据结构》第九周学习总结

    2018-2019-20172329 <Java软件结构与数据结构>第九周学习总结 教材学习内容总结 <Java软件结构与数据结构>第十五章-图 一.图及无向图 1.图的相关概 ...

  3. 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)

    20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  4. 张季跃 201771010139《面向对象程序设计(java)》第十八周学习总结

    张季跃 201771010139<面向对象程序设计(java)>第十八周学习总结 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: ...

  5. 杨玲 201771010133《面向对象程序设计(java)》第十六周学习总结

    <面向对象程序设计(java)>第十六周学习总结 第一部分:理论知识学习部分 1.程序是一段静态的代码,它是应用程序执行的蓝本.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕 ...

  6. JAVA将一段时间 按周、月、季度、半年、年进行分割

    JAVA将一段时间 按周.月.季度.半年.年进行分割. 有时候开发常常会传入一个开始时间和结束时间,将两个时间进行分割,返回一个时间的集合以下是我们小组成员所书写的实体类 package com.ai ...

  7. Java学习第七天 ———— 第一周学习汇总(粗略)

    Java学习第七天 ---- 第一周学习汇总 第一章Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大 ...

  8. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  9. Java根据当前日期获得这一周的日期

    为什么80%的码农都做不了架构师?>>>    Java根据当前日期获得这一周的日期,不是很经常用,但是用起来又不是很好找的代码! /*** 测试* @param args*/pub ...

最新文章

  1. android游戏课程设计,Miuka「游戏化课程设计」图卡18|好课程如何讲故事的
  2. php 类 单例,PHP里的单例类写法实例
  3. 揭秘!疫情下的阿里员工如何上班?
  4. android10唯一识别,Android 10 如何获取唯一值?
  5. java 值栈的结构_Struts2 | 深入浅出理解struts2中的值栈
  6. Webwork2之Action Result Type(转载)
  7. mysql5.7.26修改账号密码_修改mysql5.7的用户密码
  8. 无法读取内存属于错误吗_索佳全站仪错误信息讲解
  9. 轻松掌握namedtuple
  10. 22_粗粒度权限控制
  11. USB加密狗复制USBTrace数据截取工具分享
  12. 开发Windows物流管理系统——(二)代码实现
  13. 线性规划问题的目标函数灵敏度分析
  14. OpenWrt搭建KMS服务(Vlmcsd)
  15. Cobaltstrike Socks 代理隧道
  16. 40 个超棒的免费 Bootstrap HTML5 网站模板
  17. 怎么防止解决百度转码问题
  18. 【OpenCV】Qt + OpenCV 开发配置 + 入门知识(代码示例)
  19. 卓音工作室2022讨论班第五期——JavaScript基础
  20. 2020-02-28-E-prime主要常见问题及matlab、python打marker方式

热门文章

  1. NOI数据结构:主席树
  2. ajax 实时进度_如何做好项目进度管理
  3. centos7远程桌面端口_CentOS7启用远程桌面连接
  4. python两个编程环境_多个python Behave环境安装文件
  5. python实现模拟按键下拉_利用 Python 实现 Windows 下的鼠标键盘模拟
  6. divcss布局模板代码_CSS3布局(前端所必须要掌握)
  7. Java工作笔记-发送SOAP协议请求
  8. Java笔记-JNI各种签名以及例子
  9. RabbitMQ笔记-使用rabbitmq-c让生产者发送数据
  10. java对时间使用des加密_Java如何使用DES加密对象?