记一个自己写的工具类:

1.按时间获取当前第几周 getzs

3.按日期获取周一至周日getgetBetweenDates2

4.按年份跟周数获取周一至周日 getgetBetweenDates3

结果:

相关代码:

package com.erp.service.base.hbmis.leaderdynamic.service.impl;import com.alibaba.fastjson.JSONObject;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.WeekFields;
import java.util.*;/*** 周日期计算工具类* @author hejinfeng  */
public class DayWeekTool {//测试方法public static void main(String[] args) throws ParseException {JSONObject record =new JSONObject();System.out.println("日期==2022-03-29"+"周数=="+getzs("2022-03-29"));List<Map<String,Object>>  list= getgetBetweenDates3("2022","4",record);for(Map<String,Object> map: list){String time =map.get("time").toString();String week =map.get("week").toString();System.out.println("time:"+time+"===week:"+week);}}//获取周数public static String getzs(String time){SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date date = null;try {date = format.parse(time);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}Calendar calendar = Calendar.getInstance();calendar.setFirstDayOfWeek(Calendar.MONDAY);calendar.setTime(date);System.out.println();int i=calendar.get(Calendar.WEEK_OF_YEAR);return String.valueOf(i);}//按周数获取 周一到周日public static List<Map<String,Object>> getgetBetweenDates3(String year,String zs,JSONObject record){List<Map<String,Object>> dateList =new ArrayList<>();WeekFields weekFields= WeekFields.ISO;LocalDate now = LocalDate.now();//输入你想要的年份和周数LocalDate localDate = now.withYear(Integer.parseInt(year)).with(weekFields.weekOfYear(),Integer.parseInt(zs)-1);LocalDate localDate1  = localDate.with(weekFields.dayOfWeek(), 1L);LocalDate localDate2  = localDate.with(weekFields.dayOfWeek(), 2L);LocalDate localDate3  = localDate.with(weekFields.dayOfWeek(), 3L);LocalDate localDate4  = localDate.with(weekFields.dayOfWeek(), 4L);LocalDate localDate5  = localDate.with(weekFields.dayOfWeek(), 5L);LocalDate localDate6  = localDate.with(weekFields.dayOfWeek(), 6L);LocalDate localDate7  = localDate.with(weekFields.dayOfWeek(), 7L);DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");String dateStr1 = localDate1.format(fmt);Map<String,Object> rowmap1=new HashMap<>();rowmap1.put("time",dateStr1);rowmap1.put("week","星期一");dateList.add(rowmap1);String dateStr2 = localDate2.format(fmt);Map<String,Object> rowmap2=new HashMap<>();rowmap2.put("time",dateStr2);rowmap2.put("week","星期二");dateList.add(rowmap2);String dateStr3 = localDate3.format(fmt);Map<String,Object> rowmap3=new HashMap<>();rowmap3.put("time",dateStr3);rowmap3.put("week","星期三");dateList.add(rowmap3);String dateStr4 = localDate4.format(fmt);Map<String,Object> rowmap4=new HashMap<>();rowmap4.put("time",dateStr4);rowmap4.put("week","星期四");dateList.add(rowmap4);String dateStr5 = localDate5.format(fmt);Map<String,Object> rowmap5=new HashMap<>();rowmap5.put("time",dateStr5);rowmap5.put("week","星期五");dateList.add(rowmap5);String dateStr6 = localDate6.format(fmt);Map<String,Object> rowmap6=new HashMap<>();rowmap6.put("time",dateStr6);rowmap6.put("week","星期六");dateList.add(rowmap6);String dateStr7 = localDate7.format(fmt);Map<String,Object> rowmap7=new HashMap<>();rowmap7.put("time",dateStr7);rowmap7.put("week","星期日");dateList.add(rowmap7);record.put("startime",dateStr1);record.put("endtime",dateStr7);record.put("Zhous",getzs(dateStr1));return  dateList;}//按日期获取 周一到周日public static List<Map<String,Object>> getgetBetweenDates2(String strdate,JSONObject record){List<Map<String,Object>> dateList =new ArrayList<>();SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式Calendar cld = Calendar.getInstance();Date time= null;try {time = df.parse(strdate);} catch (ParseException e) {e.printStackTrace();}cld.setTime(time);cld.setFirstDayOfWeek(Calendar.MONDAY);//以周一为首日// cld.setTimeInMillis(System.currentTimeMillis());//当前时间DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//周一Date day1=cld.getTime();record.put("startime",sdf.format(day1));cld.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);//周日Date day2=cld.getTime();record.put("endtime",sdf.format(day2));record.put("Zhous",getzs(sdf.format(day2)));List<String> dateList2 = getBetweenDates(day1, day2);int i=1;for (String date : dateList2) {Map<String,Object> rowmap=new HashMap<>();rowmap.put("time",date);if(i==1){rowmap.put("week","星期一");}else if(i==2){rowmap.put("week","星期二");} else if(i==3){rowmap.put("week","星期三");}else if(i==4){rowmap.put("week","星期四");}else if(i==5){rowmap.put("week","星期五");}else if(i==6){rowmap.put("week","星期六");}else if(i==7){rowmap.put("week","星期日");}dateList.add(rowmap);i++;}return  dateList;}/*** 获取日期间日期* @param start* @param end* @return*/private static List<String> getBetweenDates(Date start, Date end) {DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");List<String> result = new ArrayList<>();Calendar tempStart = Calendar.getInstance();tempStart.setTime(start);Calendar tempEnd = Calendar.getInstance();tempEnd.setTime(end);tempEnd.add(Calendar.DAY_OF_YEAR, 1);while (tempStart.before(tempEnd)) {result.add(sdf.format(tempStart.getTime()));tempStart.add(Calendar.DAY_OF_YEAR, 1);}return result;}/*** 根据日期获取 星期 (2019-05-06 ——> 星期一)* @param datetime* @return*/public static String dateToWeek(String datetime) {SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};Calendar cal = Calendar.getInstance();Date date;try {date = f.parse(datetime);cal.setTime(date);} catch (ParseException e) {e.printStackTrace();}//一周的第几天int w = cal.get(Calendar.DAY_OF_WEEK) - 1;if (w < 0)w = 0;return weekDays[w];}}

Java 周日期计算工具,获取当前第几周,按周数获取周一至周日,按日期获取周一至周日相关推荐

  1. java 日期计算类_java日期计算工具类【包含常用的日期计算方法】

    package com.test; import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Cal ...

  2. 计算车号Java,java停车收费计算工具类

    停车收费计算工具类.收费标准:8时至22时,停车1小时内3元,超过1小时每延长1小时加收3元:11时至12时.16时30分至17时30分,停车30分钟内收1元,超过30分收3元:晚22时至次日8时,收 ...

  3. Java Double类型计算工具类 BigDecimal

    BigDecimal 处理Double类型的基本运算 BigDecimal 处理Double类型的基本运算 Java Double 数据在进行数据计算的时候,很容出现丢失精度的问题,因此借助于BigD ...

  4. Java项目:农业计算工具(java+swing)

    源码获取:博客首页 "资源" 里下载! 1.换算:吨.千克.斤,晌/公顷.亩.平方米,晌/株.亩/株.平方米/株 2.籽粒干重.果穗干重.出籽率计算 3.发芽种粒数.供试种粒数.发 ...

  5. php 计算日期差几周,PHP计算两个时间之差的函数(年,月,周,日,小时,分钟,秒数)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 PHP 2  // 时间格式为YYYYMMDDHHmmss 3  function timeDiff( $aTime , $bTime ) 4 { 5   ...

  6. Hive 根据日期计算周数以及周几

    文章目录 周数 周几 周数 在 Hive 中我们可以通过内置函数 weekofyear(string date) 获取某日期的周数. 示例:select weekofyear("2022-0 ...

  7. java hh24miss_时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS

    packagecom.ztesoft.iotcmp.util;importcom.ztesoft.zsmart.core.log.ZSmartLogger;importjava.sql.Timesta ...

  8. Java8使用LocalDateTime获取正确的第几周和计算日期最佳方式

    先上问题 public static void main(String[] args) {//使用DateTimeFormatter获取当前周数DateTimeFormatter dateTimeFo ...

  9. java 两日期的周数_利用 Java 中 Calendar 计算两个日期之间的天数和周数

    利用 Java 中 Calendar 计算两个日期之间的天数和周数 前言 究竟什么是一个 Calendar 呢? 中文的翻译就是日历, 那我们立刻可以想到我们生活中有阳 (公) 历阴 (农) 历之分它 ...

最新文章

  1. Axure 全局辅助线(转)
  2. java获取字符串最长_基于java查找最长字符串代码实例
  3. linux下字符串操作,Linux Bash 中字符串操作
  4. 【转】SQL中where, group by, having的用法和区别
  5. ctags 基本使用方法
  6. 用c语言随机获区100个整数,用rand() 函数去100 个随机的整数的有关问题
  7. cad怎么绘制大样图_浩辰CAD看图王电脑版中怎么绘制圆弧?
  8. 【ElasticSearch】Es 源码之 RerouteService 源码解读
  9. Net学习日记_ASP.Net_一般处理程序_笔记
  10. python语言的三种数字类型_Python语言中的类型之数字类型--Python(10)
  11. pg数据库游标的使用
  12. linux如何磁盘管理工具下载,Linux_Linux系统的磁盘空间管理工具, 1.fdisk -lDis - phpStudy...
  13. 无线打印服务器三星3200,求助三星3200打印机“USB打印机不可用”
  14. 线程学习(生产者消费者问题哲学家吃饭问题)
  15. mysql choose when_mybatis 基础(二) 动态sql 关于where if / where choose when otherwise
  16. 阿里云服务器突发性能型和共享型哪个好
  17. 解决eclips代码批量首行缩进 退格 调试
  18. jvm调优二:jvm内存模型剖析和参数设置
  19. 使用Python求解方程
  20. 严重: 异常将上下文初始化事件发送到类的侦听器实例.[org.springframework.web.co

热门文章

  1. 使用poi导出excel表基础
  2. DNS域名解析服务(正向解析)
  3. 《程序员》2012年1期精彩内容:回顾与展望
  4. 【以太网硬件十八】网卡是什么?
  5. python设计一个函数定义计算并返回n价调和函数_python函数的调和平均值?
  6. Python编程输出三角形的边长及面积
  7. ets Jan8 2013,rst cause :2,boot mode :(1,7)_ESP8266学习笔记(6)
  8. MySQL数据库字符串(单行)函数#concat、length、tirm、replace、strcmp、substr等函数总结
  9. 【知识图谱】通俗易懂的知识图谱技术
  10. 电影《在云端》经典对白翻译