项目开发中,碰见每周更新三道题的需求,不能多于三道题
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("不能再创建");
}
}
}