millisecondes à jours

J’ai fait des recherches mais je n’arrive toujours pas à trouver les jours … Voici ce que j’ai:

int seconds = (int) (milliseconds / 1000) % 60 ; int minutes = (int) ((milliseconds / (1000*60)) % 60); int hours = (int) ((milliseconds / (1000*60*60)) % 24); int days = ????? ; 

S’il vous plaît, aidez, je suis nul en mathématiques, merci.

Si vous n’avez pas un autre intervalle de temps supérieur à un jour:

 int days = (int) (milliseconds / (1000*60*60*24)); 

Si vous avez aussi des semaines:

 int days = (int) ((milliseconds / (1000*60*60*24)) % 7); int weeks = (int) (milliseconds / (1000*60*60*24*7)); 

Il est probablement préférable d’éviter d’utiliser des mois et des années si possible, car ils n’ont pas une longueur fixe bien définie. Ssortingctement parlant, les jours ne sont pas exacts: l’heure avancée signifie que les jours peuvent avoir une durée qui n’est pas de 24 heures.

Pour des cas simples comme celui-ci, TimeUnit doit être utilisé. L’utilisation de TimeUnit est un peu plus explicite sur ce qui est représenté et est également beaucoup plus facile à lire et à écrire que de faire explicitement tous les calculs arithmétiques. Par exemple, pour calculer le nombre de jours à partir de millisecondes, l’instruction suivante fonctionnerait:

  long days = TimeUnit.MILLISECONDS.toDays(milliseconds); 

Pour les cas plus avancés, où des durées plus fines doivent être représentées dans le contexte du travail avec le temps, une API de date / heure complète et moderne doit être utilisée. Pour JDK8 +, java.time est maintenant inclus (voici les tutoriels et les javadocs ). Pour les versions antérieures de Java, joda-time est une alternative solide.

 int days = (int) (milliseconds / 86 400 000 ) 
 public static final long SECOND_IN_MILLIS = 1000; public static final long MINUTE_IN_MILLIS = SECOND_IN_MILLIS * 60; public static final long HOUR_IN_MILLIS = MINUTE_IN_MILLIS * 60; public static final long DAY_IN_MILLIS = HOUR_IN_MILLIS * 24; public static final long WEEK_IN_MILLIS = DAY_IN_MILLIS * 7; 

Vous pouvez lancer int mais je vous recommande d’utiliser long .