티스토리 뷰
728x90
반응형
LocalDate, DateTimeFormatter, ChronoUnit , IntStream 을 이용
1. LocalDate : 날짜를 나타내는 불변의 날짜-시간 객체입니다. 종종 년-월-일로 간주됩니다.
2. DateTimeFormatter : 날짜, 시간 개체를 처리하도록 도와주는 포맷터(Formatter) 이다.
3. ChronoUnit : Enum 클래스로 날짜 기간 단위의 표준 집합이다.
-
날짜 , 시간 또는 날짜-시간을 조작할 수 있는 단위 기반 액세스를 제공한다.
-
ChronoUnit.DAYS.between(Temporal tmp, Temporal tmp2) : 두 시간 개체 사이의 일자 차이를 계산
-
ChronoUnit 열거 종류는 총 16가지 종류가 있다.
4. IntStream : 순차적 및 병렬을 지원하는 기본 int 값 요소의 시퀀스이다.
-
iterate(int seed, IntUnaryOperator f) : 반복에 의해 생성된 무한 순차적 순서를 반환한다.
-
limit(long maxSize) : 스트림 요소로 구성된 스트림의 길이를 제한하여 반환한다. (예 : iterate 같은 반복문의 길이를 제한하는 역할)
-
mapToObj (IntFuntion<? extends U> mapper) : 입력된 결과로 구성된 개체 값을 반환한다.
예시 코드) 2022-01-01 ~ 2022-01-05 사이의 날짜 리스트 구하기
결과 : [2022-12-31,2022-01-02,2022-01-03,2022-01-04]
int firstMonth = Integer.parseInt(searchVO.getIndate().split("-")[1]);
int secondMonth = Integer.parseInt(searchVO.getOutdate().split("-")[1]);
if(firstMonth < secondMonth) {
searchVO.setSdate(searchVO.getOutdate());
days = calendarCampsiteService.selectCampsiteList(searchVO);
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd"); //날짜 양식 설정
LocalDate firstDt = LocalDate.parse(searchVO.getIndate(),format);// String -> LocalDate 형으로 변경
LocalDate lastDt = LocalDate.parse(searchVO.getOutdate(),format);// String -> LocalDate 형으로 변경
int numOfDayBetween = (int) ChronoUnit.DAYS.between(firstDt, lastDt); // 두 날짜 사이의 차이를 숫자로 구함
//시작일자와 마지막일자 사이의 값들을 구할 수 있다. java 8 버전 부터 제공해주고 있음
List<LocalDate> dtList = IntStream.iterate(0,i -> i+1).limit(numOfDayBetween).mapToObj(i -> firstDt.plusDays(i)).collect(Collectors.toList());
}
주의) 위의 내용은 java 8 버전부터 제공하는 기술이다.
728x90
반응형
'프로그램 언어 > JAVA' 카테고리의 다른 글
java 캘린더 예약 시스템 (2) (1) | 2023.11.28 |
---|---|
java 캘린더 예약 시스템 (1) jdk1.8 기준 (0) | 2023.11.27 |
JSP/SERVLET ServletFileUPload 이용한 HttpServletRequest 데이터 처리 방법(파일 포함) (0) | 2023.05.16 |
자바(java)에서 제공하는 lock 기능 (0) | 2023.05.03 |
자바(자바) stream 특정 key 값 중복 제거 처리 방 (0) | 2023.05.02 |
250x250
반응형
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Lock
- 리눅스
- Java
- dockerfile
- leatcode
- spring
- insert
- Cache
- 캐시
- 격리수준
- 캘린더
- 컨테이너
- 스케줄러
- LocalDate
- 권한
- hazelcast
- ncp
- MySQL
- centos7
- dfs
- 개념 이해하기
- 이미지
- Quartz
- 정의
- 네이버 클라우드
- 도커
- docker
- Linux
- mybatis
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함