查询当前周工具类

本文介绍了一个Java工具类,通过LocalDateTime处理,提供了一个方法来获取当前自然周的起始和结束时间,根据一周中的具体日期动态计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上传一个简单工具类,可以获取当前周的一个起止时间

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());

    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值