package com.casic.missiles.util;

import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class TimeConvertUtil {
    public static String TimeConverter(String totalMinutesStr){
        if(ObjectUtil.isNotEmpty(totalMinutesStr)){
            int totalMinutes = Integer.valueOf(totalMinutesStr);
            int days = totalMinutes/(24*60);
            int hours = (totalMinutes%(24*60))/60;
            int minutes = totalMinutes%60;
            return String.format("%d天%d时%d分",days,hours,minutes);
        }
        return "";
    }


    public static List<String> weekDays(){
        List<String> weekDays = new ArrayList<>();
        DateTime dateTime=  DateUtil.beginOfWeek(new Date());
        weekDays.add(DateUtil.beginOfWeek(new Date()).toString("yyyy-MM-dd"));
        for(int i=1;i<=6;i++){
            weekDays.add(DateUtil.offsetDay(dateTime,i).toString("yyyy-MM-dd"));
        }
        return weekDays;
    }

    public static List<String> monthDays(){
        List<String> monthDays = new ArrayList<>();
        DateTime dateTime1=  DateUtil.beginOfMonth(new Date());
        DateTime dateTime2=  DateUtil.endOfMonth(new Date());
        int daysOfCurrentMonth = (int) ((dateTime2.getTime() - dateTime1.getTime()) / (1000 * 60 * 60 * 24));
        monthDays.add(DateUtil.beginOfMonth(new Date()).toString("yyyy-MM-dd"));
        for(int i=1;i<=daysOfCurrentMonth;i++){
            monthDays.add(DateUtil.offsetDay(dateTime1,i).toString("yyyy-MM-dd"));
        }
        return monthDays;
    }

    public static List<String> betweenDays(String begTime,String endTime){
        List<String> betweenDays = new ArrayList<>();
        DateTime dateTime1=  DateUtil.parseDateTime(begTime);
        DateTime dateTime2=  DateUtil.parseDateTime(endTime);
        int betweenDay = (int) ((dateTime2.getTime() - dateTime1.getTime()) / (1000 * 60 * 60 * 24));
        betweenDays.add(DateUtil.beginOfMonth(new Date()).toString("yyyy-MM-dd"));
        for(int i=1;i<=betweenDay;i++){
            betweenDays.add(DateUtil.offsetDay(dateTime1,i).toString("yyyy-MM-dd"));
        }
        return betweenDays;
    }
}
