一般情况下java中一年有52周。但52周总共只有52*7=364天。我们知道,平年是365天,闰年则是366天,如果一年只有52周的话,就会差1到2天。所以每过几年,就会出现一年有53周。

java中的周计算有个规则,当年的最后几天可能会被算入下一年的第一周

下面我们一起分析一个案例:
计算2017年12月31日是位于当年第几周:

Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.set(Calendar.YEAR, 2017);
cal.set(Calendar.MONTH, 11);// 11表示的是12月
cal.set(Calendar.DATE, 31);
System.out.println(cal.get(Calendar.WEEK_OF_YEAR));// 53

2017年12月31日是位于当年第53周。
需要注意的是,java里面月份是从0开始的(0~11)

再分析2017年1月1日的情况,你会发现2016年的最后6天加上2017年的第一天一起被算入了2017年的第一周

也就是说2017年的53周里面,第一周只有1天,后面52周恰好占满整年剩下的天数,这跟2017年是365天吻合。

Java中一年有几周、周的计算相关推荐

  1. Java中使用Rational类实现分数精确的计算,

    Java中使用Rational类实现分数精确的计算, 在Java中实现分数的精确计算(Rational类) 在Java中想要进行有分数精确的计算,例如1/3=0.33333333-,这个数字不能用do ...

  2. Java中在时间戳计算的过程中遇到的数据溢出问题

    背景 今天在跑定时任务的过程中,发现有一个任务在设置数据的查询时间范围异常,出现了开始时间戳比结束时间戳大的奇怪现象,计算时间戳的代码大致如下. package com.lingyejun.authe ...

  3. java中对于框架的理解_接触Java项目一周后对一些基本框架的理解 | 学步园

    最近一周接触了一个Java EE的B/S项目,里面用到了SSH,部分持久层用的是ibatis,接触完后觉得有收获,于是把认识到的记录下来.同时欢迎高手拍砖. 现在终于知道所谓的三层框架(视图层,业务逻 ...

  4. java calendar日期计算_利用Java中Calendar计算两个日期之间的天数和周数

    前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每 ...

  5. java日期相差周_利用Java中Calendar计算两个日期之间的天数和周数

    前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每 ...

  6. java 两日期的周数_利用 Java 中 Calendar 计算两个日期之间的天数和周数

    利用 Java 中 Calendar 计算两个日期之间的天数和周数 前言 究竟什么是一个 Calendar 呢? 中文的翻译就是日历, 那我们立刻可以想到我们生活中有阳 (公) 历阴 (农) 历之分它 ...

  7. 20172328 2018-2019《Java软件结构与数据结构》第八周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第八周学习总结 概述 Generalization 本周学习了二叉树的另一种有序扩展?是什么呢?你猜对了!ヾ(◍°∇°◍) ...

  8. java周志第二周_20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算

    20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 1.Git提交日志已经实现一个功能/一个bug修复的注释说明,如图所示: 2.测试代 ...

  9. 2018-2019-20172321 《Java软件结构与数据结构》第七周学习总结

    2018-2019-20172321 <Java软件结构与数据结构>第七周学习总结 教材学习内容总结 第11章 二叉查找树 一.概述 二叉查找树是一种含有附加属性的二叉树,该属性即其左孩子 ...

最新文章

  1. Css:背景色透明,内容不透明之终极方法!兼容所有浏览器
  2. 利用binlog进行数据库的还原
  3. 记录部署hue在k8s上
  4. android Arrays.fill()的使用
  5. 机器学习之--数据构造,函数图显示
  6. kafka可视化客户端工具(Kafka Tool)的使用
  7. 为什么程序必须得会C语言?
  8. 关于node的聊天室错误
  9. tplink软件升级有用吗_TP-LINK路由器升级方法 | 吴文辉博客
  10. android开源数据库,Android Hawk数据库 github开源项目
  11. centos7安装lnmp
  12. 【算法学习】【图像增强】【Retinex】White Patch Retinex 程序解读
  13. 真正解决办法:编译freeswitch错误,You must install libavformat-dev to build mod_av
  14. C++里大写TRUE和小写true(BOOL与bool)
  15. 计算机专业能当电子厂技术员,我在一个机械工厂从事电气技术员的工作,谁能告诉..._电气工程师_帮考网...
  16. mscomm32.ocx 注册 和 web 调用案例
  17. 计算机院校考研非歧视,为什么我看不起博士生?
  18. 【spring-security基础】基于数据库的认证方式
  19. 面试官:软件测试没搞懂这些,哪里来的自信投简历? 刁钻问得高频的面试题(含答案)
  20. 家用计算机中PCB板材质,介绍PCB电路板的主要原材料

热门文章

  1. Android之消息推送聊天实现
  2. 中国老年社会追踪调查(CLASS)数据及问卷
  3. 0.5mm的焊锡丝能吃多大电流_大孔隙TiENTA/SnO2Sb flowthrough 模式阳极对反渗透浓缩液的电化学氧化: 降解性能、能效和毒性评价...
  4. ULN2803L UTC八位达林顿 代替TI/TOSHIBA
  5. IT十年人生过客-终篇-十年总结
  6. django html5模板,Django模板系统(非常详细)
  7. PowerDomain简介
  8. 如何制作相册?Mac电脑如何对照片进行管理分类?
  9. 笑话与趣图框架微信小程序源码下载
  10. 如何创建荷兰式拍卖智能合约