| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package com.jtzx.crm.module.sys.util;
- import cn.hutool.core.date.DateField;
- import cn.hutool.core.date.DateTime;
- import cn.hutool.core.date.DateUtil;
- import cn.hutool.json.JSONUtil;
- import com.google.common.collect.Lists;
- import com.jtzx.crm.module.sys.model.response.DateSelectBO;
- import java.time.LocalDateTime;
- import java.util.List;
- public class DateSelectUtil {
- public static List<DateSelectBO> getDateData() {
- List<DateSelectBO> dateData = Lists.newArrayList();
- dateData.add(getBO("全部",0,null));
- dateData.add(getBO("今天",0, DateField.DAY_OF_YEAR));
- dateData.add(getBO("昨天",1, DateField.DAY_OF_YEAR));
- dateData.add(getBO("近3天",3, DateField.DAY_OF_YEAR));
- dateData.add(getBO("近1周",7, DateField.DAY_OF_YEAR));
- dateData.add(getBO("近1月",1,DateField.MONTH));
- dateData.add(getBO("近3月",3,DateField.MONTH));
- dateData.add(getBO("近半年",6,DateField.MONTH));
- dateData.add(getBO("自定义",null,null));
- return dateData;
- }
- public static void main(String[] args) {
- // DateSelectBO bo = getBO("本周", 7, DateField.DAY_OF_WEEK);
- DateSelectBO bo = getBO("最近3个月",3,DateField.MONTH);
- // DateSelectBO bo = getBO("近1周",7,DateField.DAY_OF_YEAR);
- System.out.println(JSONUtil.toJsonStr(bo));
- }
- /**
- * 获取对象
- * @param name
- * @param number
- * @param dateField
- * @return
- */
- public static DateSelectBO getBO(String name, Integer number, DateField dateField) {
- DateSelectBO bo = DateSelectBO.builder().build();
- bo.setName(name);
- bo.setSortCode(number);
- bo.setSelectStatus(false);
- if (dateField == null && number == null) {
- bo.setSelectStatus(true);
- } else {
- //取当天的最后一秒,往前计算开始时间
- DateTime endDay = DateUtil.endOfDay(DateUtil.date());
- LocalDateTime endDateTime = DateUtil.toLocalDateTime(endDay);
- bo.setEndDate(endDateTime);
- if(dateField != null && dateField.equals(DateField.DAY_OF_WEEK)){
- DateTime dateTime = DateUtil.beginOfWeek(DateUtil.date());
- bo.setStartDate(DateUtil.toLocalDateTime(dateTime));
- }else {
- bo.setStartDate(getStartDate(number, dateField, DateUtil.date()));
- }
- }
- return bo;
- }
- public static LocalDateTime getStartDate(Integer number, DateField dateField, DateTime endDay) {
- DateTime startDate = DateUtil.offset(endDay, dateField, -number);
- String str = DateUtil.formatDateTime(startDate);
- return DateUtil.toLocalDateTime(DateUtil.parse(str));
- }
- }
|