从图中可以看出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年的第一周的周一

java 跨年 周计算公式_Java关于周跨年的周数计算相关推荐

  1. java 周历_Java中公历和ISO 8601周历的一个坑

    作者:flhuoshan链接:https://hacpai.com/article/1423812556502 如果尝试运行下面的代码,其结果可能会让你意外: 运行结果为: 2014-12-29 20 ...

  2. java 周次_java处理年、月、周次以及起至日期大全

    import java.util.Calendar; /**  * Copyright 2009 XXX, Inc. All Rights Reserved.  * Class Test.java 说 ...

  3. java 跨域上传_java后台图片跨域上传图片 文件

    发送方 @ResponseBody @RequestMapping(value="/imgUpLoadNewOneKuaYu")public String imgUpLoadNew ...

  4. java调用系统时间函数_JAVA自学笔记:不使用系统函数来计算日期处于当年的第多少天...

    前段时间练习了一个求闰年的功能,现在就可以用上啦,这次写一个不借助类库的时间函数,利用基础代码写一个计算求日期处于当年的第多少天的函数. 虽然也有简单的方法,例如直接定义每月的天数累加,然后加上当月的 ...

  5. Java hibernate假外键_java – Hibernate:外键的列数错误

    我已经定义了我的两个实体类User和Permission之间的多对多关系.用户具有username和countyId的主键组合,我的Permission表具有常规整数Id.表UserPermissio ...

  6. java计算点在圆内外_java – 在O((n s)log n中计算圆交叉点)

    我试图弄清楚如何设计一个能够以O((n s)log n)复杂度完成此任务的算法.是交叉点的数量.我试过在网上搜索,却找不到东西. 无论如何,我意识到拥有一个好的数据结构是关键.我在java:TreeM ...

  7. java实现频繁项集_java实现Apriori算法——频繁项集的计算

    请注意,本文编写于 1195 天前,最后修改于 708 天前,其中某些信息可能已经过时. 前言 之前学校开的选修课<数据挖掘>,布置的两道算法题,时间有限完成其中一道:用Apriori算法 ...

  8. java 一周前日期_java获取当前时间前一周、前一月、前一年的时间

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calend ...

  9. Java编程实现获取本周在当前年的第几周、当前月的第几周、当前季度的第几季度

    /*** 项目:Java编程实现获取本周在当前年的第几周.当前月的第几周.当前季度的第几季度* 时间:2019/8/14* 作者:郑翰林*/import java.util.Calendar; pub ...

  10. java 根据某个日期查询出是某年的第几周

    文章目录 前言 一.java根据某个日期查询出是某年的第几周 前言 做记录用: 一.java根据某个日期查询出是某年的第几周 public class WeekByDate {public stati ...

最新文章

  1. oracle10g库连接报错
  2. 数据结构学习之栈求解n皇后问题
  3. 揭秘阿里小蜜:基于检索模型和生成模型相结合的聊天引擎 | PaperDaily #25
  4. 二:unittest框架配合selenium之xpath定位
  5. spring cloud报错解决:java.lang.ClassNotFoundException: com.netflix.servo.monitor.Monitors
  6. 保姆级的Arduino循迹小车研发日志及一些坑(其中包含L298N、Arduino、TCRT5000以及1:48的TT电机的使用)
  7. 用flash做古诗动画_《古诗三首》Flash动画课件
  8. 一、计算机的基础知识
  9. 黑龙江农垦科技职业学院喜迎寒假多校联赛2(快乐ak场)
  10. 二分法算一元三次方程
  11. OpenStack 启动虚拟机 Booting from Hard Disk
  12. juniper官网相关网址
  13. 高通骁龙820A凭什么能赢得众多车厂的芳心
  14. jquery保留两位小数方法,字符串保留两位小数
  15. projectManager
  16. [计算机图形学]重心坐标应用纹理(前瞻预习/复习回顾)
  17. 编程输入年份和月份,输出该月份有多少天。
  18. 人工智能对校园带来的改变
  19. 计算机应用基础题库答案,大学生计算机应用基础试题及答案
  20. 构造等比数列,求数列通项。

热门文章

  1. tp交换机管理页面_tplink交换机怎样设置
  2. 佳能相机CF卡损坏MP4视频数据恢复技术
  3. 荣耀9igoogle模式_创建自己的简单iGoogle小工具
  4. 2FSK频谱matlab,数字调制系统在Matlab下的分析
  5. 基于人工萤火虫优化(GSO)算法的函数寻优算法
  6. .net实现串口通信
  7. 5G牌照发放了,但需要购买5G手机的用户应等明年再购买
  8. Typora使用技巧之插入图片及图片上传
  9. NFT+体育,卡塔尔世界杯有哪些NFT看点!
  10. dpbs和pbs的区别_简单问题:PBS缓冲液到底是什么?