package com.sundot.airport.common.utils;

import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;

/**
 * 时间工具类
 *
 * @author ruoyi
 */
public class LargeScreenDateUtils {

    /**
     * 获取当前日期
     */
    public static Date getCurrentDate() {
        return Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());
    }

    /**
     * 获取指定天数前的日期
     *
     * @param days 天数
     * @return 指定天数前的日期
     */
    public static Date getDateBeforeDays(int days) {
        LocalDate localDate = LocalDate.now().minusDays(days);
        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    }

    /**
     * 获取指定月数前的日期
     *
     * @param months 月数
     * @return 指定月数前的日期
     */
    public static Date getDateBeforeMonths(int months) {
        LocalDate localDate = LocalDate.now().minusMonths(months);
        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    }

    /**
     * 获取指定年数前的日期
     *
     * @param years 年数
     * @return 指定年数前的日期
     */
    public static Date getDateBeforeYears(int years) {
        LocalDate localDate = LocalDate.now().minusYears(years);
        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    }

    /**
     * 日期范围类
     */
    public static class DateRange {
        private Date startDate;
        private Date endDate;

        public DateRange(Date startDate, Date endDate) {
            this.startDate = startDate;
            this.endDate = endDate;
        }

        public Date getStartDate() {
            return startDate;
        }

        public void setStartDate(Date startDate) {
            this.startDate = startDate;
        }

        public Date getEndDate() {
            return endDate;
        }

        public void setEndDate(Date endDate) {
            this.endDate = endDate;
        }
    }

}
