根据当前时间获取当前周的开始、结束时间(周一到周日)

项目开发中,碰见每周更新三道题的需求,不能多于三道题

package test;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

public class Test {

	// 获得本周一与当前日期相差的天数
    public static  int getMondayPlus() {
        Calendar cd = Calendar.getInstance();
        int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);
        //由于Calendar提供的都是以星期日作为周一的开始时间
        if (dayOfWeek == 1) {
            return -6;
        } else {
            return 2 - dayOfWeek;
        }
    }
    
    // 获得当前周- 周一的日期
    public static  Long getCurrentMonday() {
        int mondayPlus = getMondayPlus();
        GregorianCalendar currentDate = new GregorianCalendar();
        currentDate.add(GregorianCalendar.DATE, mondayPlus);
        Date monday = currentDate.getTime();
        return monday.getTime();
    }
    
    // 获得当前周- 周日  的日期
    public static Long  getPreviousSunday() {
        int mondayPlus = getMondayPlus();
        GregorianCalendar currentDate = new GregorianCalendar();
        currentDate.add(GregorianCalendar.DATE, mondayPlus +6);
        Date monday = currentDate.getTime();
        return monday.getTime();
    }


    public static void main(String[] args) throws Exception {
    	
        Long start = Test.getCurrentMonday();
        Long end = Test.getPreviousSunday();
        //模拟查出最新的3个
        List<String> list = new ArrayList<String>();
        list.add("2018-07-30 23:30:01");
        list.add("2018-07-30 14:30:27");
        list.add("2018-07-31 13:50:55");
        boolean flag = false;
        for(int i=0;i<list.size();i++){
        	Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(list.get(i).toString());
        	if(date.getTime() > start && date.getTime() < end){}else{flag = true; break;}
        }
        if(flag){
        	System.out.println("可以创建");
        }else{
        	System.out.println("不能再创建");
        }
    }
    
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值