上传一个简单工具类,可以获取当前周的一个起止时间
1、实体类
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class Week {
/*自然周开始时间*/
LocalDateTime natureWeekStart;
/*自然周结束时间*/
LocalDateTime natureWeekEnd;
}
2、工具类
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class WeekUtils {
//判断当前时间是否在当前周内
/**
* 获取当前自然周的起止时间
* @return
*/
public static Week getCurrentWeek() {
LocalDate now = LocalDate.now();
System.out.println(now);
int value = now.getDayOfWeek().getValue();
System.out.println(value);
System.out.println(now.getDayOfWeek());
Week week = new Week();
//拿到白然周开始日
LocalDateTime natureWeekStart = week.getNatureWeekStart();
//自然周结束日
LocalDateTime natureWeekEnd = week.getNatureWeekEnd();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:sS");
switch (value) {
case 1:
natureWeekStart = LocalDateTime.parse(now.minusDays(0).format(dtf) + " 00:00:00", dtf2);
natureWeekEnd = LocalDateTime.parse(now.plusDays(6).format(dtf) + " 23:59:59", dtf2);
break;
case 2:
natureWeekStart = LocalDateTime.parse(now.minusDays(1).format(dtf) + " 00:00:00", dtf2);
natureWeekEnd = LocalDateTime.parse(now.plusDays(5).format(dtf) + " 23:59:59", dtf2);
break;
case 3:
natureWeekStart = LocalDateTime.parse(now.minusDays(2).format(dtf) + " 00:00:00", dtf2);
natureWeekEnd = LocalDateTime.parse(now.plusDays(4).format(dtf) + "23:59:59", dtf2);
break;
case 4:
natureWeekStart = LocalDateTime.parse(now.minusDays(3).format(dtf) + " 00:00:00", dtf2);
natureWeekEnd = LocalDateTime.parse(now.plusDays(3).format(dtf) + "23:59:59", dtf2);
break;
case 5:
natureWeekStart = LocalDateTime.parse(now.minusDays(4).format(dtf) + " 00:00:00", dtf2);
natureWeekEnd = LocalDateTime.parse(now.plusDays(2).format(dtf) + " 23:59:59", dtf2);
break;
case 6:
natureWeekStart = LocalDateTime.parse(now.minusDays(5).format(dtf) + " 00:00:00", dtf2);
natureWeekEnd = LocalDateTime.parse(now.plusDays(1).format(dtf) + " 23:59:59", dtf2);
break;
case 7:
natureWeekStart = LocalDateTime.parse(now.minusDays(6).format(dtf) + " 00:00:00",dtf2);
natureWeekEnd = LocalDateTime.parse(now.plusDays(0).format(dtf) + "23:59:59", dtf2);
break;
}
week.setNatureWeekStart(natureWeekStart);
week.setNatureWeekEnd(natureWeekEnd);
return week;
}
/**
* 测试
* @param args
*/
public static void main(String[] args){
Week currentWeek = getCurrentWeek();
System.out.println(currentWeek.toString());
}
}