Java calcule le temps entre deux horodatages
J'ai besoin de calculer le temps écoulé entre deux dates.
Le hic ici, c'est que j'ai besoin de le montrer comme YouTube fait avec ses commentaires vidéo horodateurs. C'est pour montrer seulement par la plus grande mesure.
Par exemple,
- si le temps est de 50 secondes auparavant, il faut dire 50 secondes auparavant.
- si le temps est plus que d'une minute, il devrait dire une minute il ya/il ya dix minutes etc..
- si la différence de temps est de 1 heure 30 minutes, il doit montrer: il ya une heure.
- si le temps est une semaine et demie qu'il devrait dire qu'il y a une semaine.
- si le temps est plus que un mois, il devrait dire qu'il y a un mois, deux mois, etc...
- et ainsi de suite et ainsi de suite..
Alors, quelle est la meilleure façon de gérer cela?
Dois-je faire une méthode avec case
ou if
des déclarations qui vont retourner quelque chose comme ça? Ou est-il une meilleure approche (peut-être une bibliothèque qui a déjà fait quelque chose comme ça)?
source d'informationauteur DArkO
Vous devez vous connecter pour publier un commentaire.
Utilisation DateUtils.getRelativeTimeSpanString(longtemps, longtemps, longtemps minResolution).
time
est l'heure de début, etnow
est la fin des temps (en millisecondes). Rapport", quelques secondes auparavant," set minResolution à zéro.Exemple:
Revenir le temps en millisecondes entre les 2 dates. Il suffit de convertir que pour ce que jamais vous souhaitez afficher (ex: heures minutes secondes)
Sur Android, utilisez ceci: http://developer.android.com/reference/android/text/format/DateUtils.html#getRelativeTimeSpanString%28android.content.Context,%20long,%20boolean%29
Prendre un coup d'oeil à PrettyTime!
Aussi, chaque fois que vous voulez faire quelque chose de date/heure en Java, vous devriez jeter un oeil à Joda Time. Le faire maintenant, tu me remercieras plus tard.
Votre besoin est spécifique, et je ne connais pas de lib qui permettrait de résoudre le problème pour vous sortir de la boîte.
Toutefois, le problème n'est pas très complexe et une petite fonction à plein de "si" devrait faire l'affaire.
Bien sûr, un beau jour de la bibliothèque comme Joda Time vous aidera à garder votre code propre. Qui veut utiliser GregorianCalendar!?
Semble que vous avez un ensemble de règles personnalisées et l'algorithme de choisir une règle est fondée sur le temps en secondes entre deux horodateurs. L'approche la plus simple est de gérer la règles dans une série de if/else if: