java获取下周一整周的日期_获取Java中日期范围内的所有星期五
我最近遇到了一个任务,我必须在一个日期范围内获得所有星期五.我写了一小段代码,很惊讶看到一些奇怪的行为.
以下是我的代码:
public class Friday {
public static void main(String[]args){
String start = "01/01/2009";
String end = "12/09/2013";
String[] startTokens = start.split("/");
String[] endTokens = end.split("/");
Calendar startCal = new GregorianCalendar(Integer.parseInt(startTokens[2]),Integer.parseInt(startTokens[1])-1,Integer.parseInt(startTokens[0]));
Calendar endCal = new GregorianCalendar(Integer.parseInt(endTokens[2]),Integer.parseInt(endTokens[1])-1, Integer.parseInt(endTokens[0]));
int startYear = Integer.parseInt(startTokens[2]);
int endYear = Integer.parseInt(endTokens[2]);
int startWeek = startCal.get(Calendar.WEEK_OF_YEAR);
int endWeek = endCal.get(Calendar.WEEK_OF_YEAR);
Calendar cal = new GregorianCalendar();
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
// cal.setMinimalDaysInFirstWeek(7);
ArrayList main = new ArrayList();
while(startYear <= endYear ){
cal.set(Calendar.YEAR, startYear);
System.out.println(cal.getMinimalDaysInFirstWeek());
if(startYear == endYear){
main.addAll(getFridays(startWeek, endWeek, cal));
}
else{
main.addAll(getFridays(startWeek, 52, cal));
startWeek = 1;
}
startYear =startYear +1;
}
for(String s: main){
System.err.println(s);
}
}
public static ArrayList getFridays(int startWeek, int endWeek, Calendar cal){
ArrayList fridays = new ArrayList();
while(startWeek <= endWeek){
cal.set(Calendar.WEEK_OF_YEAR, startWeek);
fridays.add(cal.getTime().toString());
startWeek = startWeek+1;
}
return fridays;
}
}
现在,当我运行代码时,我发现2011年的星期五不见了.经过一些调试和在线浏览,我发现Calendar.WEEK_OF_YEAR是特定于语言环境的,我必须使用setMinimalDaysInFirstWeek(7)来修复它.
所以取消注释上面代码中的相关行.
根据我的理解,现在每年的第一周应该从一周的整周开始.
例如2010年1月1日是星期五.但它不应该出现在结果中,因为我将其配置为处理该周从1月3日开始.但是现在我仍然把1月1日视为星期五
我很困惑.有人可以解释为什么会这样吗?
这些Stackoverflow文章对我有所帮助:
Why dec 31 2010 returns 1 as week of year?
Understanding java.util.Calendar WEEK_OF_YEAR
java获取下周一整周的日期_获取Java中日期范围内的所有星期五相关推荐
- java获取下周一整周的日期_当前日期得到本周的开始和结束日期
/// /// 本周起止时间 /// /// /// private string weekrange(System.DateTime dt) { int weeknow = Convert.ToIn ...
- java获取明天的日期_使用java获取昨日的日期,今日的日期,明日的日期
private String tomorrowDate;//明日日期 private String todayDate;//明日日期 private String yesterdayDate;//明日 ...
- java 判断当前时间是否为节假日_浅谈Java8日期时间处理
各位小伙伴们,我们又见面了,今天峰哥跟大家分享一下java8的全新日期时间处理API.在Java8之前,我们使用的日期时间是: java.util.Datejava.util.Calendar jav ...
- java简单通讯录的实现02person类_用java实现简单的小游戏(你一定玩过)
用java实现简单的小游戏(你一定玩过) 对于java初学者来说,通过一些学习小游戏来对swing学习以及对java基础的学习是一个好的方法,同时也给学习带来了很多的乐趣,接下来就给大家分享一个jav ...
- java 查询日期行列转换_java中日期格式的转换和应用
java中主要有3个类用于日期格式转换 DateFormat .SimpleDateFormat.Calendar SimpleDateFormat函数的继承关系: java.lang.Obje ...
- jdbc读取mysql时分秒yyyy-mm-dd hh:_[转]JDBC中日期时间的处理技巧
Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒.毫秒以及时区的控制方法,同时也提供一些工具方法,比如日期/时间的比较,前后判断等. java.uti ...
- java传统的项目有哪些内容_请问java全套内容都有什么呢?
我整理的Java全套内容学习路线,分为6个阶段(大阶段)第一阶段:java内功心法篇 第二阶段:Java武功秘籍(经典框架) 第三阶段:Java高级功法(主流框架) 第四阶段:Java成神之路 第五阶 ...
- java web 应用技术与案例教程_《Java Web应用开发技术与案例教程》怎么样_目录_pdf在线阅读 - 课课家教育...
出版说明 前言 第1章 java Web应用开发技术概述 1.1 Java Web应用开发技术简介 1.1.1 Java Web应用 1.1.2 Java Web应用开发技术 1.2 Java Web ...
- JAVA的Map怎么判断为空_检查Java中的HashMap是否为空
使用该isEmpty()方法检查HashMap是否为空.让我们首先创建HashMap-HashMap hm = new HashMap(); 现在,添加一些元素-hm.put("Bag&qu ...
最新文章
- python制作解压工具_使用python制作一个解压缩软件
- python3安装步骤
- Spark Streaming(三)zookeepe搭建
- 医学图像处理期末复习(三)
- 大道至简伪代码(第一个博客)
- 前端学习(1796):前端调试之html/css介绍
- 10个趣味的物理与化学动图欣赏,看过直称神奇!
- aop判断方法是否执行成功_判断图中是否有环的三种方法
- 致程序猿:专业课老师没教的,都在这8本书里了
- 关于Google Video
- 【kafka】kafka UnknownProducerIdException raised broker locate producer metadata producerId
- 利用计算机进行信息检索,用计算机进行情报检索属于计算机应用中的
- Leetcode 278.第一个错误的版本
- python 的for与while 的i改变
- Redhat7.3修改密码
- 很多网友反映QQ被盗
- python 模拟触屏_python一次简单游戏辅助的经历(截取屏幕模拟键盘)
- android虚线边框_Android自定义View之绘制虚线
- android o壁纸,超实用壁纸应用大合集 - 你想要的壁纸在这里统统都能找到! - Android 应用 - 【最美应用】...
- mongoengine fields详解
热门文章
- Serilog Tutorial
- 一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go
- rest_framework06:自动生成路由\action使用\认证
- 关于jQuery.query.js 取参数的一个小问题
- 【ArcGIS遇上Python】ArcGIS批量处理栅格影像(NDVI)归一化完整案例代码
- 【ArcGIS遇上Python】从入门到精通系列之第二章:ArcGIS Python基本语法基础速递
- ArcGIS 10.7如何获取矢量多边形所有折点的坐标(平面坐标和经纬度坐标)?
- SQL Server 2005 cmd工具的使用
- C#趣味程序---三色球问题
- 【Envi风暴】ENVI中求两幅遥感影像的相关性(相关系数)