비디오: [자바 기초 05] 숫자계산과 문자열합치기 2024
자바 내장 비교 연산자를 날짜와 함께 사용할 수없는 것처럼 내장 수학 연산자도 사용할 수 없습니다. 대신 다양한
및
빼기
메서드를 사용하여 날짜에 더하기 및 빼기를 수행 할 수 있으며
~
메서드를 사용하여 두 날짜의 차이를 확인할 수 있습니다.
날짜와 시간 계산을 할 때 고려해야 할 중요한 사실은 Date-Time 객체가 변경 불가능하다는 것입니다. 즉, 일단 Date-Time 객체를 만들면 값을 변경할 수 없습니다. Date-Time 개체에서 계산을 수행하면 새 값이있는 새 Date-Time 개체가 생성됩니다.
->
더하기
및
빼기
메서드를 사용하면 다양한 날짜 및 시간 단위를 날짜 - 시간 개체에 추가 할 수 있습니다.
LocalDate
클래스에 대해 각각 네 가지 변형이 있으므로
LocalDate
객체에 연도, 월, 주 및 일을 더하거나 뺄 수 있습니다. 다음 코드는 현재 날짜, 내일 날짜 및 1 주일 후, 1 개월 후, 1 년 후 날짜를 인쇄합니다.
System. 아웃. println ("Today:"+ LocalDate. now ());
시스템. 아웃. println ("다음 주:"+ LocalDate. now (). plusWeeks (1));
시스템. 아웃. println ("다음 달:"+ LocalDate. now (). plusMonths (1));
시스템. 아웃. println ("내년:"+ LocalDate. now ().YY (1));
두 날짜의 차이를 확인하려면
까지
메소드를 사용하십시오. 두 번째 매개 변수로 표시된 단위로 측정 된 첫 번째 매개 변수로 전달 된 날짜와 날짜 간의 차이를 계산합니다. 예를 들어 다음 코드는 2014 년 5 월 16 일에서 2014 년 12 월 15 일 사이의 일 수를 결정합니다.
LocalDate date2 = LocalDate. 구문 분석 ("2014-12-15");
시스템. 아웃. println (date1. until (date2, ChronoUnit. DAYS));
일부 날짜 계산은 좀 더 복잡 할 수 있습니다. 예를 들어, 매월 15 일에 송장을 준비하는 비즈니스를 생각해보십시오. 다음 코드 스 니펫은 현재 날짜에서 다음 인보이스 발행 날짜까지의 일 수를 표시합니다.
LocalDate today = LocalDate. 지금();
LocalDate invDate = LocalDate. 오늘 (오늘. getYear (),
오늘. getMonthValue (), 15);
if (today. getDayOfMonth ()> 15)
invDate = invDate. 플러스 월 (1);
long daysToInvoice = 오늘. 까지 (invDate,
ChronoUnit. 일);
시스템. 아웃. 다음 송장 일까지 println (daysToInvoice
+ ".");
이 예제는 먼저 현재 날짜를 가져 와서 현재 월의 15 일을 나타내는 새
LocalDate
객체를 만드는 방식으로 작동합니다. 그런 다음 해당 월의 현재 날짜가 15보다 큰 경우 인보이스 발행 날짜에 한 달을 추가합니다. 즉, 16 일 이후 인 경우 인보이스 발행은 이번 달이 아닌
월의 다음 달인 15 일에 이루어집니다. 그런 다음 까지 메소드를 사용하여 현재 날짜와 다음 인보이스 발행 날짜 사이의 일 수를 결정합니다.
ChronoUnit
는 날짜 및 시간 계산에 사용할 수있는 다양한 시간 단위를 정의하는 열거 형입니다. 가능한 값은 다음과 같습니다:
세기 ERAS MILLENNIA
MILLIS
NANOS
NANOS
SECONDS
YEARS
YEARS
이 중 대부분은 자명하지만 그 중 두 가지는 약간 특이하다:
ERA
는 날짜는 Common Era (CE, AD라고도 함) 또는 Before Era (BCE, BC라고도 함)를 나타냅니다.
FOREVER
는 지속 시간으로 표현할 수있는 최대 값을 나타냅니다. 슬프게도, 자바는 당신이 영원히 살게하지 않을 것입니다. 다음 코드는 예외를 throw합니다.
LocalDate birthday = LocalDate. 구문 분석 ("1959-05-16);
생일 = 생일. plus (1, ChronoUnit. FOREVER);
ChronoUni
는
:
패키지이므로
ChronoUnit
-
:
import java를 사용하는 프로그램의 맨 위에 다음 명령문을 포함시켜야합니다. 시각. 일시적인. *;