예를들어 렌트 어플리케이션이라 가정하고,
반납할시간을 DB에 저장한다음,
어플을 종료햇다가 나중에 켜서 조회할 때
DB(반납시간) - 현재시간 = 잔여시간
을 조회하고싶은데요 ㅜ 이게 24시간을 넘어가면
그냥 잔여시간을 35시간 23분 이런식으로
나타내고싶은데
simpleformat을 쓰면 day로 넘어가버려서요 ㅜㅜ
어떻게해야 할까요 ㅜㅜㅜ
현재시간 - 반납시간 = 남은 시간..
현재 시간이 반납 시간을 지나지 않았다면 -시간이 나올테고
현재 시간이 반납 시간을 지났다면 +시간이 나오겠죠.
지나지않았는데 - 시간이 나온다는게 조금이해가가질않네요 ㅜㅜ
반납시간이 더 큰숫자인데.. 더 작은 숫자인 현재시간을 빼주는데..
음수값이나오는것이요 ㅜ
long currenttime = System.currentTimeMillis();
long ptime = time-currenttime-(9*1000*60*60);
SimpleDateFormat format2 = new SimpleDateFormat("d:HH:mm");
String printtime = format2.format(ptime);
String test = format2.format(time);
이렇게 일단 처리를 했는데요 ㅜ
9시간을 빼준 이유는, 에뮬레이터에서는 GMT0이라 괜찮은데
폰으로 포팅했더니 GMT+9 잡혀서...
값이 9시간 더나오더라구요 ㅜ
그래서 9시간을 빼주엇고... 말씀하신데로...
계산해서 변수를 받아보았는데.. -값이 나오네요 ㅜㅜ
-값을 붙여서 해줘봤는데... 24시간 안의 값은 정확히 나오는데..
그 이상 넘어가면... 숫자가 이상해지는것같습니다.
저 time이 반납시간인가요?
time 에 시간 저장할때 System.currentTimeMillis(); 하셨나요?
그렇다면 -9시간을 할 이유가 없으실텐데...요...
어짜피 두 저장 시간사이의 차이를 구하는 것이니깐요~
Date 에 보시면 getTime() <--. 이거 long 값입니다.
반납시간 - 현재시간 = 잔여시간
// 잔여시간을 초로 변경
잔여시간 /1000 = 초 // 잔여시간은 밀리초기 때문
시간구하기
=> 초 / 3600 = 시간 ;
분 구하기
=> 초%3600 = 시간을 제외한 남은 초;
=> 남은초 / 60 = 분;