1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java 周日期计算工具 获取当前第几周 按周数获取周一至周日 按日期获取周一至周日

Java 周日期计算工具 获取当前第几周 按周数获取周一至周日 按日期获取周一至周日

时间:2024-06-10 18:02:27

相关推荐

Java 周日期计算工具 获取当前第几周 按周数获取周一至周日 按日期获取周一至周日

记一个自己写的工具类:

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("日期==-03-29"+"周数=="+getzs("-03-29"));List<Map<String,Object>> list= getgetBetweenDates3("","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;}/*** 根据日期获取 星期 (-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];}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。