package com.sw.mes.utils;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class ReportDateUtil {
    public static List<String> getStartAndEndTime(String startTime,String endTime,Integer maxDay) {
        List<String> list = new ArrayList<String>();
        if(startTime==null&&endTime==null){
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Date now=new Date();
            Calendar c = Calendar.getInstance();
            c.setTime(new Date());
            //默认开始时间
            c.add(Calendar.DATE, -6);
            String startTimeResult = format.format(c.getTime());
            list.add(startTimeResult);
            //结束时间
            c.add(Calendar.DATE, 7);
            String endTimeResult = format.format(c.getTime());
            list.add(endTimeResult);
        }
        else if(startTime==null&&endTime!=null){
            list.add("开始时间或者结束时间不能为空");
        }
        else if(startTime!=null&&endTime==null){
            list.add("开始时间或者结束时间不能为空");
        }else if(startTime!=null&&endTime!=null){
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date startDate = null;
            Date endDate = null;
            try{
                startDate = format.parse(startTime);
                endDate = format.parse(endTime);
                int days = differentDaysByMillisecond(startDate,endDate);
                if(days>maxDay){
                    list.add("不能超过"+maxDay+"天");
                }else{
                    //Calendar c = Calendar.getInstance();
                    //c.setTime(endDate);
                    //c.add(Calendar.DATE, 1);
                    //开始时间
                    list.add(startTime);
                    //结束时间
                    list.add(endTime);
                    //SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
                    //list.add(format1.format(c.getTime()));
                }
            }
            catch (Exception e){
                list.add("error");
            }
        }
        return list;
    }

    public static int differentDaysByMillisecond(Date date1,Date date2)
    {
        int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
        return days;
    }
}
