SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
SimpleDateFormat currentDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String currentTime = timeFormat.format(time);
String currnetDate = currentDateFormat.format(time);
String startTime = currnetDate + " " + String.valueOf("시작시간");
String endTime = currnetDate + " " + String.valueOf("끝나는시간");
// String -> Date
Date dateStartTime = timeFormat.parse(startTime);
Date dateEndTime = timeFormat.parse(endTime);
//원하는 해당 시간
Date dateCurrentTime = timeFormat.parse(currentTime);
// 크다(1), 같다(0), 작다(-1)
int compare1 = dateCurrentTime.compareTo(dateStartTime);
int compare2 = dateEndTime.compareTo(dateCurrentTime);
if(compare1 < 0 && compare2 >= 0) {
//시작시간이 어제이고 (끝나는시간과 현재시간이 일자가 동일하고)
//끝나는시간이 현재시간보다 큰경우 (시작시간안에있고)
Date format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(endTime);
Date format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentTime);
long diffSec = (format1.getTime() - format2.getTime()) / 1000;
long diffMin = (format1.getTime() - format2.getTime()) / 60000;
try {
Thread.sleep(diffSec * 1000); // 멈춰있어야할 시간
} catch (Exception e) {
e.printStackTrace();
}
}
if(compare1 >= 0 && compare2 < 0){
//현재시간이 시작시간보다크고(시작시간 안에있고) (끝나는시간과 현재시간이 일자가 동일하고)
//끝나는시간이 내일인경우
//끝나는시간을 내일로 변경
Calendar cal = Calendar.getInstance();
cal.setTime(dateEndTime);
cal.add(Calendar.DATE, +1);
Date format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(timeFormat.format(cal.getTime()));
Date format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentTime);
long diffSec = (format1.getTime() - format2.getTime()) / 1000;
long diffMin = (format1.getTime() - format2.getTime()) / 60000;
try {
Thread.sleep(diffSec * 1000); // 멈춰있어야할 시간
} catch (Exception e) {
e.printStackTrace();
}
}
if(compare1 >= 0 && compare2 >= 0) {
// 시작시간과 끝나는시간이 오늘인경우 (현재시간이 시작시간과 끝나는시간 안이고 시작시간과 끝나는시간의 일자가 동일하고)
Date format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(endTime);
Date format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(currentTime);
long diffSec = (format1.getTime() - format2.getTime()) / 1000;
long diffMin = (format1.getTime() - format2.getTime()) / 60000;
try {
Thread.sleep(diffSec * 1000); // 멈춰있어야할 시간
} catch (Exception e) {
e.printStackTrace();
}
}
'자바' 카테고리의 다른 글
[ENUM] enum이란.. (0) | 2022.10.26 |
---|---|
[Equals VS contentEquals] (0) | 2022.10.25 |
[정규식] 자바에서 숫자를 체크하는 정규식 (1) | 2022.10.25 |
[IndexOf] 문자열 확인 (0) | 2022.10.24 |
배열 슬라이스 (0) | 2021.02.19 |