查询时间周期的获取

1,7天前的时间
//(完成时间)在7天前
Calendar calendar = Calendar.getInstance();
//设置为7天前
calendar.add(Calendar.DAY_OF_MONTH, -7);
//得到7天前的时间
Date before7days = calendar.getTime();

2,一周内的查询时间节点(开始时间start00:00-结束时间end23:59)

HashMap<String, DateTime> lastWeekTime = WritingDateUtil.getLastWeekTime();
        DateTime start = lastWeekTime.get("startLastWeekTime");
        DateTime end = lastWeekTime.get("endLastWeekTime");
        // 创建一个DateTimeFormatter来格式化日期时间
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String startString = formatter.format(start);
        String endString = formatter.format(end);

工具类

class WritingDateUtil {

    private static WritingDateUtil util;

    @PostConstruct
    public void init() {
        util = this;
    }

    public static HashMap<String, DateTime> getLastWeekTime() {
        Week week = DateTime.now().dayOfWeekEnum();
        switch (week) {
            /** 周一 */
            case MONDAY:
                return getRealizeLastWeekTime(-14, -8, -7, -1);
            /** 周二 */
            case TUESDAY:
                return getRealizeLastWeekTime(-15, -9, -8, -2);
            /** 周三 */
            case WEDNESDAY:
                return getRealizeLastWeekTime(-16, -10, -9, -3);
            /** 周四 */
            case THURSDAY:
                return getRealizeLastWeekTime(-17, -11, -10, -4);
            /** 周五 */
            case FRIDAY:
                return getRealizeLastWeekTime(-18, -12, -11, -5);
            /** 周六 */
            case SATURDAY:
                return getRealizeLastWeekTime(-19, -13, -12, -6);
            /** 周日 */
            case SUNDAY:
                return getRealizeLastWeekTime(-20, -14, -13, -7);
            default:
                throw new RuntimeException("method:getLastWeekTime,获取当前时间是周几异常");
        }
    }

    private static HashMap<String, DateTime> getRealizeLastWeekTime(int upLastStartOffset, int upLastEndOffset, int lastStartOffset, int lastEndOffset) {
        // 获取上周的开始时间和结束时间
        DateTime startLastWeekTime = DateTime.now().offset(DateField.DAY_OF_YEAR, lastStartOffset)
                .setField(DateField.HOUR_OF_DAY, 0).setField(DateField.MINUTE, 0)
                .setField(DateField.SECOND, 0).setField(DateField.MILLISECOND, 0);
        DateTime endLastWeekTime = DateTime.now().offset(DateField.DAY_OF_YEAR, lastEndOffset)
                .setField(DateField.HOUR_OF_DAY, 23).setField(DateField.MINUTE, 59)
                .setField(DateField.SECOND, 59).setField(DateField.MILLISECOND, 0);
        HashMap<String, DateTime> maps = Maps.newHashMap();
        maps.put("startLastWeekTime", startLastWeekTime);
        maps.put("endLastWeekTime", endLastWeekTime);
        return maps;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值