0
点赞
收藏
分享

微信扫一扫

java时间处理方法3-获取开始和结束时间

朱悟能_9ad4 2024-11-18 阅读 20

/**
     * 获取开始和结束时间
     * @param model
     * @return
     */
    public static StatisticsDTO getTimePeriod(StatisticsDTO model) {
        Long day = 0L;
        //判断前端什么都没传值,默认月
        if (StringUtil.isBlank(model.getStartTime()) || StringUtil.isBlank(model.getEndTime())) {
            Calendar cal = Calendar.getInstance();
            //当前月1号
            cal.set(Calendar.DAY_OF_MONTH, 1);
            //减一天:上个月最后一天
            cal.add(Calendar.DATE, -1);
            model.setDayCount(Long.valueOf(cal.getActualMaximum(Calendar.DAY_OF_MONTH)));
            model.setEndDate(CalendarUtil.endOfDay(cal).getTime());
            //改月1:上个月第一天
            cal.set(Calendar.DAY_OF_MONTH, 1);
            model.setStartDate(CalendarUtil.beginOfDay(cal).getTime());
            day = Long.valueOf(cal.getActualMaximum(Calendar.DAY_OF_MONTH));
        } else {
            model.setStartTime(model.getStartTime() + " 00:00:00");
            model.setEndTime(model.getEndTime() + " 23:59:59");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            try {
                model.setStartDate(sdf.parse(model.getStartTime()));
                model.setEndDate(sdf.parse(model.getEndTime()));
            } catch (ParseException e) {
                throw new RuntimeException(e);
            }
            //时间段
            Instant start = model.getStartDate().toInstant();
            Instant end = model.getEndDate().toInstant();
            day = ChronoUnit.DAYS.between(start, end);
        }
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
//        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM");
        if (day > BasicsConstant.MONTH_MAX_DAY){
            //月计算
            model.setTypeTime(2);
            model.setStartTime(sdf1.format(model.getStartDate()));
            model.setEndTime(sdf1.format(model.getEndDate()));
        } else {
            //日计算
            model.setTypeTime(0);
            model.setStartTime(sdf1.format(model.getStartDate()));
            model.setEndTime(sdf1.format(model.getEndDate()));
        }
        return model;
    }

对应实体解释

 /**
     * 开始时间
     */
    private String startTime;
    /**
     * 结束时间
     */
    private String endTime;
    /**
     * 开始时间
     */
    private Date startDate;
    /**
     * 结束时间
     */
    private Date endDate;
    /**
     * 同比开始时间
     */
    private Date startTimeYoy;
    /**
     * 同比结束时间
     */
    private Date endTimeYoy;
    /**
     * 环比开始时间
     */
    private Date startTimeRing;
    /**
     * 环比结束时间
     */
    private Date endTimeRing;
    /**
     * 实际类型:1年,2月,3周,4日,0选时间段
     */
    private Integer typeTime;
    /**
     * 图例
     */
    private String code;
    /**
     * 图例
     */
    private List<String> codeList;
    /**
     * 高发点分组
     */
    private String groupid;
    /**
     * 之间的天数
     */
    private Long dayCount;

举报

相关推荐

0 条评论