Java关于周跨年的周数计算
- 摘要:从图中可以看出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关于周跨年的周数计算相关推荐
- java计算今天是今年的第几周_java calendar类根据当前日期时间,计算当前日期在当前月是第几周,与周跨月问题,...
第一步 先根据当前日期时间 计算出本周的开始时间与结束日期 第二步 判断当前日期大于等于本周开始日期,并且当前日期小于等于本周结束日期, 就把本周开始日期当做条件计算出当前日期是第几周 // 周跨月也 ...
- 2018-2019-20172329 《Java软件结构与数据结构》第九周学习总结
2018-2019-20172329 <Java软件结构与数据结构>第九周学习总结 教材学习内容总结 <Java软件结构与数据结构>第十五章-图 一.图及无向图 1.图的相关概 ...
- 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)
20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 张季跃 201771010139《面向对象程序设计(java)》第十八周学习总结
张季跃 201771010139<面向对象程序设计(java)>第十八周学习总结 1.实验目的与要求 (1) 综合掌握java基本程序结构: (2) 综合掌握java面向对象程序设计特点: ...
- 杨玲 201771010133《面向对象程序设计(java)》第十六周学习总结
<面向对象程序设计(java)>第十六周学习总结 第一部分:理论知识学习部分 1.程序是一段静态的代码,它是应用程序执行的蓝本.进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕 ...
- JAVA将一段时间 按周、月、季度、半年、年进行分割
JAVA将一段时间 按周.月.季度.半年.年进行分割. 有时候开发常常会传入一个开始时间和结束时间,将两个时间进行分割,返回一个时间的集合以下是我们小组成员所书写的实体类 package com.ai ...
- Java学习第七天 ———— 第一周学习汇总(粗略)
Java学习第七天 ---- 第一周学习汇总 第一章Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大 ...
- Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几
Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...
- Java根据当前日期获得这一周的日期
为什么80%的码农都做不了架构师?>>> Java根据当前日期获得这一周的日期,不是很经常用,但是用起来又不是很好找的代码! /*** 测试* @param args*/pub ...
最新文章
- android游戏课程设计,Miuka「游戏化课程设计」图卡18|好课程如何讲故事的
- php 类 单例,PHP里的单例类写法实例
- 揭秘!疫情下的阿里员工如何上班?
- android10唯一识别,Android 10 如何获取唯一值?
- java 值栈的结构_Struts2 | 深入浅出理解struts2中的值栈
- Webwork2之Action Result Type(转载)
- mysql5.7.26修改账号密码_修改mysql5.7的用户密码
- 无法读取内存属于错误吗_索佳全站仪错误信息讲解
- 轻松掌握namedtuple
- 22_粗粒度权限控制
- USB加密狗复制USBTrace数据截取工具分享
- 开发Windows物流管理系统——(二)代码实现
- 线性规划问题的目标函数灵敏度分析
- OpenWrt搭建KMS服务(Vlmcsd)
- Cobaltstrike Socks 代理隧道
- 40 个超棒的免费 Bootstrap HTML5 网站模板
- 怎么防止解决百度转码问题
- 【OpenCV】Qt + OpenCV 开发配置 + 入门知识(代码示例)
- 卓音工作室2022讨论班第五期——JavaScript基础
- 2020-02-28-E-prime主要常见问题及matlab、python打marker方式
热门文章
- NOI数据结构:主席树
- ajax 实时进度_如何做好项目进度管理
- centos7远程桌面端口_CentOS7启用远程桌面连接
- python两个编程环境_多个python Behave环境安装文件
- python实现模拟按键下拉_利用 Python 实现 Windows 下的鼠标键盘模拟
- divcss布局模板代码_CSS3布局(前端所必须要掌握)
- Java工作笔记-发送SOAP协议请求
- Java笔记-JNI各种签名以及例子
- RabbitMQ笔记-使用rabbitmq-c让生产者发送数据
- java对时间使用des加密_Java如何使用DES加密对象?