package com.yfd.platform.utils;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 *
 * @Date: 2023/5/24 13:51
 * @Description: 日期工具类
 */
public class DateUtils {

    /**********************************
     * 用途说明: 根据当前日期获取当前一周的所有日期
     * 参数说明  date 时间
     * 返回值说明: java.util.List<java.lang.String>
     ***********************************/
    public static List<String> getWeekDays(Date date) {
        // 获取日历实例，默认日期时间为当前，可根据具体的业务场景修改日期时间
        Calendar calendar = Calendar.getInstance();
        // 设置日期
        calendar.setTime(date);
        //calendar.set(Calendar.YEAR, 2023);
        //calendar.set(Calendar.MONTH, 4);
        //calendar.set(Calendar.DAY_OF_MONTH, 24);

        // 设置日历日期为本周的周一
        // 循环取当前的星期和周一做比对，如果不是周一，设置日历往过去推一天，直到设置周一成功
        while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
            calendar.add(Calendar.DAY_OF_MONTH, -1);
        }

        //当前周日期数组
        String[] currentWeekDays = new String[7];

        //日期格式化
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        currentWeekDays[0] = df.format(calendar.getTime());

        for (int i = 1; i < currentWeekDays.length; i++) {
            calendar.add(Calendar.DAY_OF_MONTH, 1);
            currentWeekDays[i] = df.format(calendar.getTime());
        }
        return new ArrayList<>(Arrays.asList(currentWeekDays));
    }

}
