java.util.Calendar的一些小方法

 Calendar calendar=Calendar.getInstance();
        if (TIME_UNIT_WEEK.equals(timeUnit)) {
            calendar.setWeekDate(date/100,date%100,Calendar.MONDAY);
            calendar.add(Calendar.WEEK_OF_YEAR,-3);
            calendar.add(Calendar.DATE,5);
            setTrendDate(calendar.get(Calendar.YEAR)*100 + calendar.get(Calendar.WEEK_OF_YEAR));
        } else if (TIME_UNIT_MONTH.equals(timeUnit)) {
            calendar.set(date / 100, date % 100 - 1, 1);
            calendar.add(Calendar.MONTH, -3);
            setTrendDate(calendar.get(Calendar.YEAR) * 100 + calendar.get(Calendar.MONTH)+1);
        }

计算当前周/月前四周的日期
比如 date=201911 (2019年11月),则计算出为201908
201946(2019年46周),则计算出为201943

  public void computeBeginAndEndDate() {
        Assert.notNull(timeUnit, "timeUnit must not be null!");
        Assert.notNull(date, "date must not be null!");
        Calendar calendar = Calendar.getInstance();
        if (TIME_UNIT_WEEK.equals(timeUnit)) {
            calendar.setWeekDate(date / 100, date % 100, Calendar.MONDAY);
            setBeginDate(calendar.getTime());
            calendar.add(Calendar.DATE, 6);
            setEndDate(calendar.getTime());
        } else if (TIME_UNIT_MONTH.equals(timeUnit)) {
            calendar.set(date / 100, date % 100 - 1, 1);
            setBeginDate(calendar.getTime());
            calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
            setEndDate(calendar.getTime());
        }
    }

计算当前周/月的初始日期和结束日期
列:date=201911 (2019年11月),月初为20191101.月末为20191130
列:201946(2019年46周),初为周一的日期,末为礼拜天的日期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值