lizijie
2022-01-14 9147ac833536f581c4ce8ff7504d7daf4a20cd9c
screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -956,9 +956,9 @@
        cal.setTime(date);
        final int last = cal.getActualMinimum(Calendar.DAY_OF_YEAR);
        cal.set(Calendar.DAY_OF_YEAR, last);
        cal.set(Calendar.HOUR_OF_DAY,0);
        cal.set(Calendar.MINUTE,0);
        cal.set(Calendar.SECOND,0);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return cal.getTime();
    }
@@ -975,6 +975,35 @@
        cal.set(Calendar.SECOND, 59);
        return cal.getTime();
    }
    /*
     * 获取指定日期月的第一天
     * */
    public static Date getFirstDayOfMonth(Date date) {
        final Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
        cal.set(Calendar.DAY_OF_MONTH, last);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return cal.getTime();
    }
    /*
     * 获取指定日期月的最后一天
     * */
    public static Date getLastDayOfMonth(Date date) {
        final Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        cal.set(Calendar.DAY_OF_MONTH, last);
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        return cal.getTime();
    }
    /*
     * 判断日期是否为今年
@@ -1018,50 +1047,6 @@
            throw new RuntimeException(e);
        }
        return date;
    }
    /**
     * 获取指定年月的第一天
     *
     * @param year
     * @param month
     * @return
     */
    public static String getFirstDayOfMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        // 设置年份
        cal.set(Calendar.YEAR, year);
        // 设置月份
        cal.set(Calendar.MONTH, month - 1);
        // 获取某月最小天数
        int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
        // 设置日历中月份的最大天数
        cal.set(Calendar.DAY_OF_MONTH, lastDay);
        // 格式化日期
        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
        return df.format(cal.getTime());
    }
    /**
     * 获取指定年月的第一天
     *
     * @param year
     * @param month
     * @return
     */
    public static String getLastDayOfMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        // 设置年份
        cal.set(Calendar.YEAR, year);
        // 设置月份
        cal.set(Calendar.MONTH, month - 1);
        // 获取某月最大天数
        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        // 设置日历中月份的最大天数
        cal.set(Calendar.DAY_OF_MONTH, lastDay);
        // 格式化日期
        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
        return df.format(cal.getTime());
    }
    /**
@@ -1811,4 +1796,22 @@
        String lastYear = getDateAddYear(DateUtils.dateToDateString(getDate(), DateUtils.yyyy), -1);
        return DateUtils.getDate(lastYear, DateUtils.yyyy);
    }
    //获取一天中每个小时的前后一小时集合
    public static Map<Date, List<Integer>> getBeforeAndAfterHourDate(Date date) {
        String s = dateToDateString(date, yyyy_MM_dd_EN);
        List<String> timeLag = getTimeLag(s);
        Map<Date, List<Integer>> result = new HashMap<>();
        for (String s1 : timeLag) {
            List<Integer> objects = new ArrayList<>();
            Date current = getDate(s1, yyyy_MM_dd_HH_EN);
            Date before = addHours(current, -1);
            Date after = addHours(current, 1);
            objects.add(getHour(before));
            objects.add(getHour(current));
            objects.add(getHour(after));
            result.put(current, objects);
        }
        return result;
    }
}