获取以本周为基数的日期(例如,本周第几天,上周第几天..............)

week=0 代表本周,-1代表上周,1代表下周,2代表下下周,依次类推

day= 0代表当天,1代表第二天,-1代表前一天,依次类推,相关代码如下:

/**
     * @param week 0:本周,1下一周,-1上一周
     * @param day  0:当天,1:第二天,-1前一天
     * @return
     */
    public static Date getBeginTime(int week, int day) {
        Date weekStart = getBeginDayOfWeek(week);
        Date date = getWeekDayByIn(day, weekStart);
        return date;
    }

    public static Date getWeekDayByIn(int day, Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DATE, day);
        return getDayStartTime(calendar.getTime());
    }

    /**
     * 获取本周开始时间
     *
     * @return
     */
    public static Date getBeginDayOfWeek(int week) {
        Calendar calendar = Calendar.getInstance(Locale.CHINA);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);//以周一为首日
        calendar.setTimeInMillis(System.currentTimeMillis());//当前时间
        calendar.add(Calendar.DAY_OF_WEEK,week*7);
        calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//周一
        return getDayStartTime(calendar.getTime());
    }


    /**
     * 获取某个日期的开始时间
     *
     * @param d
     * @return
     */
    public static Timestamp getDayStartTime(Date d) {
        Calendar calendar = Calendar.getInstance();
        if (null != d)
            calendar.setTime(d);
        calendar
            .set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0,
                0);
        calendar.set(Calendar.MILLISECOND, 0);
        return new Timestamp(calendar.getTimeInMillis());
    }


public static void main(String args[]) {
        Date date = getBeginTime(0,1);
        System.out.println(date);
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值