스프링 시간 제한 설정

행행·2022년 11월 21일
0
post-thumbnail
  • 모의주식 서비스를 개발하면서, 시장 거래시간에 벗어나면 주문을 못하도록 막아야 했습니다.
  • 프론트에서도 막을 수 있지만 POSTMAN을 통해서 시도해보려는 사람?이 있을것 같아서 막았습니다.
  • 코드는 다음과 같습니다.
//        //거래시간 설정
        LocalTime now = LocalTime.now();
        LocalDate date = LocalDate.now();
        
        // 2. DayOfWeek 객체 구하기
        DayOfWeek dayOfWeek = date.getDayOfWeek();
        
        
//        the day-of-week, from 1 (Monday) to 7 (Sunday)
        // 3. 숫자 요일 구하기
        int dayOfWeekNumber = dayOfWeek.getValue();
        
        // 4. 숫자 요일 검증
        //토요일6, 일요일7인 경우 거래 불가
        if (dayOfWeekNumber >=6){
            return ResponseEntity.status(401).body(BaseResponseBody.of(401, "거래 가능한 요일이 아닙니다."));
        }
        
        //현재시간
        int hour = now.getHour();
        
        //16시 이후거나 9시 이전은 거래불가
        if (hour >16 || hour <9){
            return ResponseEntity.status(401).body(BaseResponseBody.of(401, "거래 가능한 시간이 아닙니다."));
        }


다음과 같이 작성했습니다.
개선 여지가 보이는 경우 피드백 주시면 감사하겠습니다.

profile
성장하려고 분투 중인 개발자

1개의 댓글

comment-user-thumbnail
2022년 12월 7일

라이브러리나 커스텀 클래스를 만들어 양력과 음력 법정 공휴일까지 처리할 수 있게 개선해 보는 건 어떨까요?😍

답글 달기