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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手写体识别代码_Python识别图片中的文字

一、前言不知道大家有没有遇到过这样的问题&#xff0c;就是在某个软件或者某个网页里面有一篇文章&#xff0c;你非常喜欢&#xff0c;但是不能复制。或者像百度文档一样&#xff0c;只能复制一部分&#xff0c;这个时候我们就会选择截图保存。但是当我们想用到里面的文字时&a…

递推与储存,是动态规划的关键

小智最近由于项目需要&#xff0c;经常要接触到一些规划类的问题。那今天就给大家讲一讲旅行商问题及其解法吧。旅行商问题&#xff0c;即TSP问题&#xff08;Travelling Salesman Problem&#xff09;。问题是&#xff0c;有一个旅行商人要拜访n个城市&#xff0c;每个城市只能…

SQL 标量值函数的调用

调用 MS SQL 标量值函数&#xff0c;应该在函数前面加上 "dbo."&#xff0c;否则会报 “不是可以识别的 内置函数名称”错误。例如 DECLARE WhichDB TINYINT; SELECT WhichDB dbo. user_GetWhichDB(1);--看看是哪个数据库的 另外&#xff0c;标量值函数就相当于…

dotnet core TargetFramework 解析顺序探索

dotnet core TargetFramework 解析顺序测试Intro现在 dotnet 的 TargetFramework 越来越多&#xff0c;抛开 .NET Framework 不谈&#xff0c;如果一个类库支持多个 TargetFramework 应用实际运行的时候会使用哪个版本的 API 呢&#xff0c;之前一直都是想当然的自以为是了&…

java递归单链表查找中间元素_《数据结构与算法——C语言描述》答案 3.11 查找单链表中的特定元素(递归)...

转载请注明出处&#xff1a;http://blog.csdn.net/xdz78#include #include //查找单链表中的特定元素&#xff0c;《数据结构与算法——c语言描述》 3.11 答案int count;//全局变量自动初始化为0int m;//需要查找的元素大小typedef struct student {int data;struct student *n…

python调用robotframework_robotframework+python接口自动化的点滴记录(2)

1.在循环体内&#xff0c;赋值语句的前后名称不能一样&#xff0c;否则在跑循环的第二次时就会报错&#xff1a;TypeError: not all arguments converted during string formatting这样写是错的&#xff1a;${设置计划接口_请求body} string format ${设置计划接口_请求body}…

这种感觉真爽

今天接到客户的修改需求&#xff0c;说了一大段话&#xff0c;然后我们开始讨论解决方案。最后自己来负责前台的修改。看了六七个小时的代码&#xff0c;最后修改了一行。达到了要求。想起了以前课文中学到的一句话&#xff1a;画一条线1美元&#xff0c;知道在哪里画这条线999…

大数据时代,掌握数据分析需要做到这几点

这些年来&#xff0c;随着进入大数据时代&#xff0c;各行各业均有一个词频频被提到&#xff0c;那就是数据分析。那么数据分析究竟是什么呢&#xff1f;数据分析就是指用适当的统计分析方法对收集来的大量数据进行处理分析&#xff0c;提取有用信息并形成结论&#xff0c;从而…

93.7%的程序员!竟然都不知道Redis为什么默认16个数据库?

背景在实际项目中redis常被应用于做缓存&#xff0c;分布式锁/消息队列等。但是在搭建配置好redis服务器后很多朋友应该会发现和有这样的疑问&#xff0c;为什么redis默认建立了16个数据库&#xff0c;16个数据库的由来redis是一个字典结构的存储服务器&#xff0c;一个redis实…

python tablewidget 颜色_QT中,QTableView鼠标移动到item上时该item所在行的背景颜色变成其他颜色,这要怎么实现...

展开全部//不解释&#xff0c;自己看。不保证完整&#xff0c;仅供思路参考#include #include "TableView.h"#include #include int main(int argc, char *argv[]){QApplication a(argc, argv);QStandardItemModel model;for ( int col 0; col {QList list;for ( in…

java8 垃圾 不同_【不同的Java垃圾回收器的比较】

现在已经是2014年了&#xff0c;但是对大多数开发人员而言有两件事情仍然是个谜——java垃圾回收以及异性(码农又被嘲笑了)。由于我对后者也不是特别了解&#xff0c;我想我还是试着说说前者吧&#xff0c;尤其是随着Java8的到来&#xff0c;这个领域也发生了许多重大的变化及提…

。。。第一次。。。

记得第一次给你发短信。。问你。。数据结构期末考试有没有范围啊。。没有告诉你。。那次只是给你发短信的借口。。记得第一次打电话给你。。问你。。那个。。什么什么。。的那道题。。你会做吗。。第一次在电话里听你的声音。。是那样的甜美。。记得第一次和安子。阿昆吃饭的时…

“一边熬夜一边求不要猝死”,90后养生朋克指南,条条扎心!

随着一批又一批的90后步入中年秃头、失眠、衰老...健康的压力如影如随是时候开始养生朋克了当代青年&#xff1a;养生朋克指南养生朋克一边作死一边自救的养生方式比如一边熬夜一边涂贵价护肤品用最贵的眼霜 熬最长的夜心理活动经常是&#xff1a;一边熬夜一边祈祷自己不要猝死…

EntityFramework Core查询数据基本本质

【导读】在EntityFramework Core中、当查询出数据后&#xff0c;是如何将数据映射给实体的呢&#xff1f;本节我们预先做个基本探讨&#xff0c;后续给出其底层原理本质前不久&#xff0c;我们在探索性能时&#xff0c;给出利用反射达到性能瓶颈时的方案即使用委托&#xff0c;…

pythonmt4通讯swot矩阵_swot分析矩阵范例(各部门)

优势(Strengths)S1.团队工作氛围和谐融洽&#xff0c;作风吃苦耐劳&#xff0c;积极主动、自我改进意识强S2.品质管控专业人才工作能力强、沟通能力强&#xff0c;执行力坚决S3.产品质量管控体制、流程健全&#xff0c;拥有质量监督管控权S4.产品检测、试验设备齐全&#xff0c…

2009从知到行知识管理培训公开课最后一期

由知识管理中心&#xff08;Knowledge Management Center&#xff09;举办的“从知到行&#xff1a;知识管理理论与实施”培训班第十六期将于2009年11月26-27日于北京举办&#xff0c;这也是KMC举办的2009年最后一期面向CKO、知识管理总监、经理和知识管理专员等知识管理实施人…

java socket 多次write_java NIO2异步socket的write事件与read事件的完成次数不一致是怎么回事...

引用来自“Black_JackQ”的评论异步的&#xff0c;client需多次read处理完数据。是这样做的&#xff0c;但是目前观察消息接受率只有70%左右&#xff0c;代码如下&#xff1a;socket.read(byteBuffer, null, new CompletionHandler() {Overridepublic void completed(Integer r…

万级 K8S 集群背后,etcd 如何保持稳定性?

这几年&#xff0c;随着 Kubernetes 成为容器编排领域霸主&#xff0c;etcd 越来越火&#xff0c;GitHub star 已超过 34.2K。这与它的应用场景广泛密不可分&#xff0c;从服务发现到分布式锁&#xff0c;从配置存储到分布式协调&#xff0c;可以说&#xff0c;etcd 已成为云原…

mysql 10分钟一聚合_SQL-根据DateTime查询多个聚合-MySQL

这是一个复杂的过程.但是我有一个表,其中包含一个DATETIME字段,以及一些其他的int和float字段,需要对其求和并求平均值.我们希望基于时间戳在此表上进行求和和平均,最终旨在开发3个在某种意义上可以相互补充的查询.所以能力看起来像这样TIMESTAMP |subj_diff| SCR2 | SCR32011-…

qdialog 只有点击才能获得焦点_4 个突破点,让你的 Banner 点击率提升10倍

双 11 刚过&#xff0c;双 12又来了每年这个时候作为一名设计师&#xff0c;真的很难...老板压着做电商 banner还有很多人指指戳戳让你改稿好不容易按照别人的想法过稿结果banner 的点击率还不高其实&#xff0c;只需要稍微调整视觉重点你的电商banner 就会变得变得更吸引人&am…