java通过年月获取当前月所有周(跨月),获取每周开始日期和结束日期

	    /***    根据年月返回本月共几周,每周开始与结束日期*/public static List<Map<String, String>> queryWeek(String year, String month) throws ParseException {/** 周 **/final String[] weeks = { "第一周", "第二周", "第三周", "第四周", "第五周", "第六周" };Calendar calendar = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");calendar.setTime(sdf.parse(year + "-" + month + "-01"));int i = calendar.get(Calendar.DAY_OF_WEEK);int months = calendar.get(Calendar.MONTH);switch (i) {case 1:calendar.add(Calendar.DATE, 1);break;case 2:calendar.add(Calendar.DATE, 0);break;case 3:calendar.add(Calendar.DATE, 6);break;case 4:calendar.add(Calendar.DATE, 5);break;case 5:calendar.add(Calendar.DATE, 4);break;case 6:calendar.add(Calendar.DATE, 3);break;case 7:calendar.add(Calendar.DATE, 2);break;default:break;}// 本月的第一个星期List<Map<String, String>> list = new ArrayList<Map<String, String>>();int index = 0;while (true) {if (index++ > 0){calendar.add(Calendar.DATE, 1);}Map<String, String> map = new HashMap<String, String>();map.put("start", sdf.format(calendar.getTime()));calendar.add(Calendar.DATE, 6);map.put("end", sdf.format(calendar.getTime()));map.put("week", weeks[index - 1]);list.add(map);// 判断是否跨月if (months != calendar.get(Calendar.MONTH)){break;}}return list;}测试:public static void main(String[] args) throws Exception {List<Map<String, String>> list = queryWeek("2023","10");System.out.println(list);}打印结果:[{ week=第一周, start=2023-10-02, end=2023-10-08 },      { week=第二周, start=2023-10-09, end=2023-10-15 },           { week=第三周, start=2023-10-16, end=2023-10-22 },{ week=第四周, start=2023-10-23, end=2023-10-29 },{ week=第五周, start=2023-10-30, end=2023-11-05 }
]

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

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

相关文章

浏览器中(不使用pdf插件)下载pdf文件的方法

downloadPdfFnc(pdfUrl, pdfName){// 构建文件内容fetch(pdfUrl).then(response > response.blob()).then(blob > {const url URL.createObjectURL(blob);const a document.createElement(a);a.href url;a.download ${pdfName}.pdf; // 设置下载文件的名称a.style.di…

2014年3月24日 Go生态洞察:Go地鼠的故事

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

PRD学习

产品经理零基础入门&#xff08;五&#xff09;产品需求文档PRD&#xff08;全16集&#xff09;_哔哩哔哩_bilibili 1. PRD的2种表现形式 ① RP格式 &#xff08;1&#xff09;全局说明 ② 文档格式

redis之主从复制和哨兵模式

&#xff08;一&#xff09;redis的性能管理 1、redis的数据缓存在内存中 2、查看redis的性能&#xff1a;info memory&#xff08;重点&#xff09; used_memory:904192&#xff08;单位字节&#xff09; redis中数据占用的内存 used_memory_rss:10522624 redis向操作系统…

广告行业中那些趣事系列66:使用chatgpt类LLM标注数据并蒸馏到生产小模型

导读&#xff1a;本文是“数据拾光者”专栏的第六十六篇文章&#xff0c;这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇主要介绍使用chatgpt类LLM进行数据标注任务并蒸馏到生产小模型&#xff0c;对于希望使用chatgpt类LLM进行打标并部署到生产任务中的小伙伴可…

JVM的垃圾收集算法

1.算法的分类 1.1标记清除算法 第一步&#xff1a;标记&#xff08;找出内存中需要回收的对象&#xff0c;并且把它们标记出来&#xff09; 根据可达性算法&#xff0c;标记的是存活的对象&#xff0c;然后将其他的空间进行回收 第二步&#xff1a;清除&#xff08;清除掉被…

Sentinel 监控数据持久化(mysql)

Sentinel 实时监控仅存储 5 分钟以内的数据&#xff0c;如果需要持久化&#xff0c;需要通过调用实时监控接口来定制&#xff0c;即自行扩展实现 MetricsRepository 接口&#xff08;修改 控制台源码&#xff09;。 本文通过使用Mysql持久化监控数据。 1.构建存储表&#xff08…

使用OpenCV将图像转换为NV12格式并加载NV12数据

摘要&#xff1a;在新项目中&#xff0c;需要为上层应用开放几个接口&#xff0c;但又不想让上层应用过多依赖OpenCV。本文将详细介绍如何使用C和OpenCV&#xff0c;通过加载图片并转换为NV12格式&#xff0c;实现对图像数据的处理&#xff0c;以及如何加载NV12数据并显示。这些…

QT基础入门【QSS】QT伪状态类型和实例

1、伪装器类型 伪状态描述:active当部件位于活动窗口中时设置此状态。:adjoins-item当 QTreeView 的 ::branch 邻接到一个项时设置此状态。:alternate当 QAbstractItemView 绘制每一行时,如果 QAbstractItemView::alternatingRowColors() 设置为 true,则为每一行的交替行。:b…

ESP32 Arduino实战Web篇-使用 WebSocket 创建 ESP32 Web 服务器

本文将详细介绍如何使用 WebSocket 创建 ESP32 Web 服务器,解释WebSocket原理与搭建步骤,并附超详细的代码解释 假设我们需要创建一个使用 ESP32 通过 WiFi 控制灯泡的项目。实现非常简单:我们将 ESP32 设置为软 AP 或 STA 模式,使其能够提供一个网页,显示灯开关的状态为…

HT560 30W 过温限幅 D类音频功率放大器

HT560具有过温限幅功能&#xff0c;当芯片内部温度达到过温限幅点&#xff0c;HT560自动降低增益&#xff0c;使其IC能够连续播放而不间断。另外&#xff0c;HT560具有功率限制功能&#xff0c;一种是限幅功能&#xff0c;在输出端限制一定的输出幅度&#xff0c;使其不损坏喇叭…

JS中new关键词具体起到了什么作用

在JavaScript中&#xff0c;new关键字用于创建一个新的对象实例。具体来说&#xff0c;当你使用new关键字来调用一个函数时&#xff0c;这个函数会被视为一个构造函数&#xff0c;并且会创建一个新的对象。这个新对象会继承构造函数的属性和方法&#xff0c;并且可以通过this关…

算法基础 1.4 高精度 (加减乘除)

高精度加法模版&#xff1a; 计算 C A B&#xff0c;这里默认低位在前面&#xff0c;例如num123在A中的存在形式是[3,2,1]。 vector<int> add(vector<int> &A, vector<int> &B){vector<int> C;int t 0;for (int i 0; i < A.size() || i…

阿里云高效计划学生和老师免费代金券申请认证方法

阿里云高校计划学生和教师均可参与&#xff0c;完成学生认证和教师验证后学生可以免费领取300元无门槛代金券和3折优惠折扣&#xff0c;适用于云服务器等全量公共云产品&#xff0c;订单原价金额封顶5000元/年&#xff0c;阿里云百科aliyunbaike.com分享阿里云高校计划入口及学…

2014年3月13日 Go生态洞察:并发模式与管道取消技术

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

刷题学习记录(攻防世界)

wife_wife 一拿到题目就提示这题不用爆破 进入环境得到的是一个登录框 随便试了一下登录账户密码会提示错误&#xff0c;那就去注册账户&#xff0c;注册的账户还有注册管理员的选项 先注册普通用户234&#xff0c;注册好后登录 这样就得到flag&#xff0c;但是提交是错误的&a…

js-cookie的使用

js-cookie 基础 js-cookie是一个简单的&#xff0c;轻量级的处理cookies的js API。 // 安装js-cookie库 npm install js-cookie// 在Vue组件中使用js-cookie import Cookies from js-cookie// 设置cookie Cookies.set(key, value) //eg: Cookies.set(name, lhy)// 获取cookie …

KT404A语音芯片U盘更新语音方案说明_通讯协议 硬件设计参考

一、功能简介 KT404A语音芯片用U盘更换语音文件&#xff0c;适用于广告机、提示器等等场景 为了满足客户不方便使用PC电脑端更新&#xff0c;我们在KT404A芯片的基础上&#xff0c;开发了U盘更换声音文件的功能&#xff0c;保持和之前的标准本本【也就是KT404A芯片的基础版本…

论文笔记:Localizing Cell Towers fromCrowdsourced Measurements (intro 部分)

2015 1 Intro 1.1 motivation opensignal.com 、cellmapper.net 和 opencellid.org 都是提供天线&#xff08;antenna&#xff09;位置的网站 他们提供的天线位置相当准确&#xff0c;但至少在大多数情况下不完全正确这个目标难以实现的原因是蜂窝网络供应商没有义务提供有…