2021.11.17 - [JAVA] - [Java] 값 비교하기 compareTo 사용하기
이전에 발행했던 compareTo 메서드를 사용해서 유효기간을 검사하는 방법을 구현할 것이다
1. 예를들어 2021-01-01 00:00:00부터 1년간의 유효기간이 있다고 가정하면(2021-12-31 23:59:59)
오늘 날짜 기준으로 유효기한이 안 지나있는 상태이다
이걸 자바 코드로 확인할 수 있는 방법을 작성한다
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentTime = new Date();
String today = format.format(currentTime);
System.out.println("현재 날짜:"+ today);
String start_dt = "20210101000000";
String end_dt = "20211231235959";
Date startDate = format.parse(start_dt); //문자열을 날짜형식으로 변환해줌
Date endDate = format.parse(end_dt);
Date todate = format.parse(today);
- Date로 현재 날짜를 가져와서 저장하고 fomat.parse로 현재 시간 시작시간 종료시간을 변환한다
int compare1 = todate.compareTo(startDate); //크다(1), 같다(0), 작다(-1)
int compare2 = endDate.compareTo(todate);
System.out.println("compare:"+ compare1 + compare2);
if(compare1 >= 0 && compare2>=0 ) {
System.out.println("사용가능");
} else {
System.out.println("유효기간만료");
}
- 오늘 날짜가 시작날짜보다 크고 종료 날짜보다 작으면 "사용가능" 문자열을 출력한다
[전체 코드]
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;
public class test {
public static void main(String[] args) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentTime = new Date();
String today = format.format(currentTime);
System.out.println("현재 날짜:"+ today);
String start_dt = "20210101000000";
String end_dt = "20211231235959";
Date startDate = format.parse(start_dt); //문자열을 날짜형식으로 변환해줌
Date endDate = format.parse(end_dt);
Date todate = format.parse(today);
System.out.println("startDate:" + startDate); //변환 결과
System.out.println("endDate:" + endDate);
System.out.println("todate:" + todate);
int compare1 = todate.compareTo(startDate); //크다(1), 같다(0), 작다(-1)
int compare2 = endDate.compareTo(todate);
System.out.println("compare:"+ compare1 +" "+ compare2);
if(compare1 >= 0 && compare2>=0 ) {
System.out.println("사용가능");
} else {
System.out.println("유효기간만료");
}
}
}
[결과]
2. 오늘 날짜가 2021-01-01 00:00:00부터 2021-06-30 23:59:59 기한 안에 들어가는지 확인하는 코드 (boolean return)
public static boolean IsDate() throws ParseException {
boolean result = false;
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentTime = new Date();
String today = format.format(currentTime);
System.out.println("현재 날짜:"+ today);
String start_dt = "20210101000000";
String end_dt = "20210630235959";
Date startDate = format.parse(start_dt); //문자열을 날짜형식으로 변환해줌
Date endDate = format.parse(end_dt);
Date todate = format.parse(today);
int compare1 = todate.compareTo(startDate); //크다(1), 같다(0), 작다(-1)
int compare2 = endDate.compareTo(todate);
if(compare1 >= 0 && compare2>=0 ) {
result = true;
} else {
result = false;
}
return result;
}
boolean 리턴 값으로 원하는 조건문에 사용할 수 있다
[전체 코드]
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;
public class test {
public static void main(String[] args) throws ParseException {
if(IsDate()) {
System.out.println("True");
}else {
System.out.println("False");
}
}
public static boolean IsDate() throws ParseException {
boolean result = false;
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date currentTime = new Date();
String today = format.format(currentTime);
System.out.println("현재 날짜:"+ today);
String start_dt = "20210101000000";
String end_dt = "20210630235959";
Date startDate = format.parse(start_dt); //문자열을 날짜형식으로 변환해줌
Date endDate = format.parse(end_dt);
Date todate = format.parse(today);
int compare1 = todate.compareTo(startDate); //크다(1), 같다(0), 작다(-1)
int compare2 = endDate.compareTo(todate);
if(compare1 >= 0 && compare2>=0 ) {
result = true;
} else {
result = false;
}
return result;
}
}
[결과]
오늘 날짜 이외에도 변수 today에 다른 날짜를 대입해서 사용할 수 있다
반응형
'JAVA' 카테고리의 다른 글
[Java/Android] 안드로이드 부팅 후 앱 자동 실행 (0) | 2022.04.07 |
---|---|
[Java/Android] 안드로이드 볼륨 조절하기 (0) | 2022.03.29 |
[Java] 값 비교하기 compareTo 사용하기 (0) | 2021.11.17 |
[JAVA] URL에 올려진 파일 다운로드 하는 방법 (0) | 2021.11.04 |
[Java] 바이트 배열 데이터 파일 저장하기 (0) | 2021.11.03 |
댓글