ali
2025-02-14 25648562a9c396f9013a26b4a892155ee77becbb
zhitan-common/src/main/java/com/zhitan/common/utils/ChartUtils.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,191 @@
package com.zhitan.common.utils;
import com.zhitan.common.constant.CommonConst;
import com.zhitan.common.constant.TimeTypeConst;
import java.util.Date;
import java.util.List;
/**
 * @Description: ç»Ÿè®¡å›¾ç›¸å…³æ•°æ®å·¥å…·ç±»
 * @author: yxw
 * @date: 2022å¹´04月28日 15:29
 */
public class ChartUtils {
    /**
     * æž„造日期列表
     *
     * @param timeType
     * @param timeCode
     * @param dateList
     */
    public static void generateDateList(String timeType, String timeCode, List<Date> dateList) {
        Date now = new Date();
        switch (timeType) {
            case TimeTypeConst.TIME_TYPE_HOUR:
                if (!timeCode.contains(CommonConst.SINGLE_MINUS_SIGN)) {
                    timeCode = DateTimeUtil.toDateTimeStr(timeCode, DateTimeUtil.COMMON_PATTERN_HOUR, DateTimeUtil.COMMON_PATTERN_TO_HOUR);
                }
                int minute = 59;
                for (int i =  CommonConst.DIGIT_0; i <= minute; i++) {
                    String tempCode = timeCode + ":0" + i;
                    if(i>9){
                        tempCode = timeCode + ":" + i;
                    }
                    Date tempD = DateTimeUtil.toDateTime(tempCode, DateTimeUtil.COMMON_PATTERN_END_WITH_MINUTE);
                    dateList.add(tempD);
                }
                break;
            case TimeTypeConst.TIME_TYPE_DAY:
                if (!timeCode.contains(CommonConst.SINGLE_MINUS_SIGN)) {
                    timeCode = DateTimeUtil.toDateTimeStr(timeCode, DateTimeUtil.COMMON_PATTERN_DAY, DateTimeUtil.COMMON_PATTERN_TO_DAY);
                }
                int hour = 23;
                for (int i =  CommonConst.DIGIT_0; i <= hour; i++) {
                    String tempCode = timeCode + " 0" + i;
                    if (i > 9) {
                        tempCode = timeCode + " " + i;
                    }
                    Date tempD = DateTimeUtil.toDateTime(tempCode, DateTimeUtil.COMMON_PATTERN_TO_HOUR);
                    dateList.add(tempD);
                }
                break;
            case TimeTypeConst.TIME_TYPE_MONTH:
                if (!timeCode.contains(CommonConst.SINGLE_MINUS_SIGN)) {
                    timeCode = DateTimeUtil.toDateTimeStr(timeCode, DateTimeUtil.COMMON_PATTERN_MONTH, DateTimeUtil.COMMON_PATTERN_TO_MONTH);
                }
                int max = DateTimeUtil.getDateTimeLastDay(DateTimeUtil.toDateTime(timeCode, DateTimeUtil.COMMON_PATTERN_TO_MONTH));
                for (int i =  CommonConst.DIGIT_1; i <= max; i++) {
                    String tempCode = timeCode + "-0" + i;
                    if (i > 9) {
                        tempCode = timeCode + "-" + i;
                    }
                    Date tempD = DateTimeUtil.toDateTime(tempCode, DateTimeUtil.COMMON_PATTERN_TO_DAY);
                    dateList.add(tempD);
                }
                break;
            case TimeTypeConst.TIME_TYPE_YEAR:
                int monthMax = 12;
                for (int i = CommonConst.DIGIT_1; i <= monthMax; i++) {
                    String tempCode = timeCode + "-0" + i;
                    if (i > 9) {
                        tempCode = timeCode + "-" + i;
                    }
                    Date tempD = DateTimeUtil.toDateTime(tempCode, DateTimeUtil.COMMON_PATTERN_TO_MONTH);
                    dateList.add(tempD);
                }
                break;
            default:
                break;
        }
    }
    /**
     * èŽ·å–å¯¹åº”çš„ç»“æŸæ—¶é—´
     *
     * @param timeType
     * @param date
     * @return
     */
    public static Date getEndTime(String timeType, Date date) {
        Date d1 = new Date();
        switch (timeType) {
            case TimeTypeConst.TIME_TYPE_DAY:
                d1 = DateTimeUtil.addDays(date, CommonConst.DIGIT_1);
                break;
            case TimeTypeConst.TIME_TYPE_MONTH:
                d1 = DateTimeUtil.addMonths(date, CommonConst.DIGIT_1);
                break;
            case TimeTypeConst.TIME_TYPE_YEAR:
                d1 = DateTimeUtil.addYears(date, CommonConst.DIGIT_1);
                break;
            default:
                break;
        }
        return d1;
    }
    /**
     * èŽ·å–æ—¥æœŸæ˜¾ç¤ºå­—ç¬¦
     *
     * @param timeType
     * @param date
     * @return
     */
    public static String getTimeCode(String timeType, Date date) {
        String str = CommonConst.EMPTY;
        switch (timeType) {
            case TimeTypeConst.TIME_TYPE_DAY:
                str = DateTimeUtil.getDateTime(date, DateTimeUtil.COMMON_PATTERN_TO_HOUR);
                break;
            case TimeTypeConst.TIME_TYPE_MONTH:
                str = DateTimeUtil.getDateTime(date, DateTimeUtil.COMMON_PATTERN_TO_DAY);
                break;
            case TimeTypeConst.TIME_TYPE_YEAR:
                str = DateTimeUtil.getDateTime(date, DateTimeUtil.COMMON_PATTERN_TO_MONTH);
                break;
            default:
                break;
        }
        return str;
    }
    /**
     * èŽ·å–æ—¥æœŸæ˜¾ç¤ºå­—ç¬¦
     *
     * @param timeType
     * @param date
     * @return
     */
    public static String getTimeCodeChart(String timeType, Date date) {
        String str = CommonConst.EMPTY;
        switch (timeType) {
            case TimeTypeConst.TIME_TYPE_DAY:
                str = DateTimeUtil.getDateTime(date, DateTimeUtil.COMMON_PATTERN_HOUR_MINUTE);
                break;
            case TimeTypeConst.TIME_TYPE_MONTH:
                str = DateTimeUtil.getDateTime(date, DateTimeUtil.COMMON_PATTERN_MONTH_DAY);
                break;
            case TimeTypeConst.TIME_TYPE_YEAR:
                str = DateTimeUtil.getDateTime(date, DateTimeUtil.COMMON_PATTERN_TO_MONTH);
                break;
            default:
                break;
        }
        return str;
    }
    /**
     * èŽ·å–æ—¥æœŸæ˜¾ç¤ºå­—ç¬¦
     *
     * @param timeType
     * @param timeCode
     * @return
     */
    public static Date getDateTime(String timeType, String timeCode) {
        Date d1 = new Date();
        switch (timeType) {
            case TimeTypeConst.TIME_TYPE_DAY:
                if (!timeCode.contains(CommonConst.SINGLE_MINUS_SIGN)) {
                    timeCode = DateTimeUtil.toDateTimeStr(timeCode, DateTimeUtil.COMMON_PATTERN_DAY, DateTimeUtil.COMMON_PATTERN_TO_DAY);
                }
                d1 = DateTimeUtil.toDateTime(timeCode, DateTimeUtil.COMMON_PATTERN_TO_DAY);
                break;
            case TimeTypeConst.TIME_TYPE_MONTH:
                if (!timeCode.contains(CommonConst.SINGLE_MINUS_SIGN)) {
                    timeCode = DateTimeUtil.toDateTimeStr(timeCode, DateTimeUtil.COMMON_PATTERN_MONTH, DateTimeUtil.COMMON_PATTERN_TO_MONTH);
                }
                d1 = DateTimeUtil.toDateTime(timeCode, DateTimeUtil.COMMON_PATTERN_TO_MONTH);
                break;
            case TimeTypeConst.TIME_TYPE_YEAR:
                d1 = DateTimeUtil.toDateTime(timeCode, DateTimeUtil.COMMON_PATTERN_YEAR);
                break;
            default:
                break;
        }
        return d1;
    }
}