package com.qiuguo.iot.base.date;

import java.time.LocalDateTime;

public enum DateEnum implements IDate{
    //现在，今天，明天，后天，昨天，前天，*天后，*天，
    // 下周*， *周后，*周，
    // 下个月*， *个月 *月后
    // 今年，明年，后年，去年，前年，*年 *年后
    //*分钟
    //*小时
    //*秒

    /**
     * 今天
     */
    TODAY("今天"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime;
        }

    },
    /**
     * 今天
     */
    NOW("现在"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime;
        }

    },

    /**
     * 明天
     */
    TOMORROW("明天"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-1);
        }

    },
    /**
     * 明天
     */
    YESTERDAY("昨天"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(1);
        }

    },
    /**
     * 明天
     */
    BEFOR_YESTERDAY("前天"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(2);
        }

    },
    /**
     * 后天
     */
    AFTER_TOMORROW("后天"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * n天后
     */
    N_AFTER_DAY("天后"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * n天
     */
    N_DAY("天"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N月后
     */
    N_AFTER_MONTH("月后"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N月
     */
    N_MONTH("月"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N年后
     */
    N_AFTER_YEAR("年后"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N年
     */
    N_YEAR("年"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N小时后
     */
    N_AFTER_HOUR("小时后"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N小时
     */
    N_HOUR("小时"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N分钟后
     */
    N_AFTER_MINUTE("分钟后"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N分钟
     */
    N_MINUTE("分钟"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N秒后
     */
    N_AFTER_SECOND("秒后"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    /**
     * N秒
     */
    N_SECOND("秒"){
        @Override
        public LocalDateTime getDateTime(LocalDateTime localDateTime){
            return localDateTime.minusDays(-2);
        }

    },
    ;
    Date date;
    String code;
    DateEnum(String c) {
        code = c;
    }

    public static DateEnum getWithCode(String c) {
        for (DateEnum dateEnum:values()
             ) {
            if(c.equals(dateEnum.code)){
                return dateEnum;
            }
        }
        return null;
    }
}
