Java 日历 Calendar 的使用

参考
(72条消息) Calendar.getInstance()用法_马啃菠萝-林的博客-CSDN博客

(72条消息) JAVA 获取某段时间内的所有日期集合_耗子他大哥的博客-CSDN博客

(93条消息) java计算两个日期之间相差的天数的四种方法_java计算两个日期之间的天数_是小李呀~的博客-CSDN博客

(72条消息) Java获取今天是星期几_java获取星期几-CSDN博客

public void getWeekDay(){
   String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
    Calendar calendar=Calendar.getInstance();
    System.out.println("今天是中国的"+weekDays[calendar.get(Calendar.DAY_OF_WEEK)-1]);
    }
    
weekDays[calendar.get(Calendar.DAY_OF_WEEK)-1]

一、为什么要在weekDays数组中减一?

因为calendar.get(Calendar.DAY_OF_WEEK)获取到的为今天是这一周的第几天,而代码是外国人编写的,在国外一周的开始不是星期一
而是星期天,所以如果今天是中国的星期一,但是calendar.get(Calendar.DAY_OF_WEEK)获取的却是2
获取某个时间的前后一星期的时间数组和星期几   例如今天2023-04-27 获取 2023-04-20 和 2023-05-04
Map map = new HashMap<>();
List<String> dateList = new ArrayList<>();
List<String> dateWeekList = new ArrayList<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
//选择的时间
String selectTime = scheduleMaster.getSelectTime();
Date parse = null;
try {
parse = simpleDateFormat.parse(selectTime);
} catch (ParseException e) {
e.printStackTrace();
return ResultData.fail("时间转换错误");
}
//日历
Calendar instance = Calendar.getInstance();
//设置时间
instance.setTime(parse);
//选择的时间的后7天
instance.add(Calendar.DATE, 7);
Date endSelectTime = instance.getTime();
scheduleMaster.setEndSelectTime(simpleDateFormat.format(endSelectTime));
//选择的时间的前7天
instance.add(Calendar.DATE, -14);
Date startSelectTime = instance.getTime();
scheduleMaster.setStartSelectTime(simpleDateFormat.format(startSelectTime));
//开始获取时间数组和星期数组
while (instance.getTime().compareTo(endSelectTime) <= 0) {
//添加一天
instance.add(Calendar.DATE, 1);
//添加一天转成字符串
dateList.add(simpleDateFormat.format(instance.getTime()));
//获取日历返回的数值,转成星期
dateWeekList.add(weekDays[instance.get(Calendar.DAY_OF_WEEK) - 1]);
}
//查询数据
List<Map<String, String>> dateDataList = scheduleMasterMapper.getPlannedShipmentDetailsBySelectTime(scheduleMaster);
//查询数据
List<Map<String, String>> tableDataList = scheduleMasterMapper.getScheduleMaster(scheduleMaster);
//新增数据
map.put("tableDataList", tableDataList);
map.put("dateDataList", dateDataList);
map.put("dateList", dateList);
map.put("dateWeekList", dateWeekList);
//返回数据
return ResultData.succeed(map);