2016-11-01 5 views
-3

여러 알람이 선택한 시간에 실행되는 알람 응용 프로그램을 개발 중입니다. 이제 문제는 현재 시간과 알람 시간 (사용자가 선택한 시간) 간의 시간차를 계산하려는 것입니다. 스레드를 사용하지 않고 현재 시간과 사용자가 선택한 알람 시간 간의 시간 차이를 어떻게 계산할 수 있습니까? 직접 시간을 계산하는 시간차 방법이 있습니까?시간차 계산, android

+0

이 long''로 2 회를 ​​변환 및 일부 뺄셈을 만들지 않고 할 수 있습니다. – Enzokie

+0

thats 분명한 하나의 #enzokie하지만 난 그냥 내가 뭘 찾고 있었는지 .. 덕분에 어쨌든 ... 여기에 이것을 할 쉬운 방법입니다. http://stackoverflow.com/questions/3352031/calculate-time-between-two-times-android –

+0

그저 잠깐 말하고있는 것과 똑같은 접근 방식입니다. – Enzokie

답변

0

두 번 차이가 있습니다. 당신이 다음 TimePickerDialog를 사용하는 경우

try { 
    Date _day = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH).parse(nowTime); 
    Date day = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH).parse(alarmTime); 

    double diff = day.getTime() - _day.getTime() ; 

    double totalMinuts = diff/(60 * 1000); 
    double leftMinutsAfterHours = totalMinuts % 60; 
    double totalHours = (totalMinuts - leftMinutsAfterHours)/60; 

    double leftHoursAfterDays = totalHours % 24; 
    double totalDays = (totalHours - leftHoursAfterDays)/24; 

} catch (ParseException e) { 
    e.printStackTrace(); 
} 
+0

vidulaJ에 감사드립니다. 지금까지 내가 찾은 최고의 솔루션입니다. 내가 구현하고 잘 작동합니다. –

+0

좋아요! 알게되어 기뻐! – vidulaJ

0

변환 시간은 객체에게

을 Calander합니다.

Calander c=Calander.getinstance(); 

설정 시간 minuits

는 밀리 초가 걸릴.

다음 diffenece 걸릴;

long differnce=pickedTimeInMillis- currentTimeInMillis; 

long diffenceInSeconds=diffenrce/1000; 
int differnceInMin=deffernce/(1000*60) 
int differnceInHour=deffernce/(1000*60*60) 

가 아니면 밀리

Calander currentTime=Calander.getinstance(); 
hour=c.get(Calendar.HOUR_OF_DAY) 
Calander selectedTime=selectedTimeFromCalander; 

int differnce=selectedTime.get(Calendar.HOUR_OF_DAY)-hour 
+0

나는 차이를 찾는 일이 .... inMillis를 사용하지 않아야 함을 언급합니다. –

+0

확인하십시오. 나는 그것을 테스트하지 않았고, 단지 썼다. 절대 값을 취하십시오. 시간은 12 시간 형식이므로 Am 또는 Pm으로 확인하십시오. – Godwin