2016-11-01 1 views
-3

Je développe l'application d'alarme où l'alarme multiple tirera sur l'heure choisie. Maintenant, le problème est que je veux calculer la différence de temps entre l'heure actuelle et l'heure de l'alarme (quel utilisateur a sélectionné). Comment puis-je calculer la différence de temps entre l'heure actuelle et l'heure d'alarme sélectionnée par l'utilisateur sans utiliser de threads. Y a-t-il une méthode de différence de temps qui calcule directement l'heure?Calculation de différence de temps, android

+0

Convertir les 2 fois dans 'long' et faire une soustraction. – Enzokie

+0

c'est l'évidence #enzokie mais je viens de trouver ce que je cherchais .. merci quand même ... voici un moyen facile de le faire. http://stackoverflow.com/questions/3352031/calculate-time-between-two-times-android –

+0

C'est exactement la même approche que je dis il y a un moment. – Enzokie

Répondre

0

Cela vous donnera la différence entre deux fois.

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

merci vidulaJ. C'est la meilleure solution jusqu'ici j'ai trouvé. J'ai mis en œuvre et fonctionne bien. –

+0

Super! Heureux de savoir! – vidulaJ

0

temps Convertir objet Calander

Si vous utilisez TimePickerDialog alors.

Calander c=Calander.getinstance(); 

heures fixes et minuits

puis prendre les Millis.

puis prenez la diffenece;

long differnce=pickedTimeInMillis- currentTimeInMillis; 

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

Ou vous pouvez le faire sans prendre Millis

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

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

Je viens de mentionner que la différence de trouver devrait être sans utiliser .... inMillis. –

+0

Veuillez vérifier. Je n'ai pas testé, juste écrit seulement. Prenez la valeur absolue et l'heure est au format 12 heures, donc vous voulez vérifier avec Am ou Pm – Godwin