Comment ajouter une valeur longue au calendrier?
Calendrier ajouter une méthode en Java prend un entier comme une entrée
int secondes = 3; cal.add(Calendar.DEUXIÈMEMENT, secondes);
Mais que faire si les secondes sont le type Long.
long secs = 3
Il y a assez peu de possibilités comme l'ajout de l'secondes itératif, mais quelles sont les autres options?
source d'informationauteur Strudel
Vous devez vous connecter pour publier un commentaire.
Si la valeur stockée dans
long sec
est inférieur ou égal alorsInteger.MAX_VALUE
vous pouvez lancer àint
:Si la valeur est inférieure ou égale
Long.MAX_VALUE /1000
ensuite, vous pouvez convertir les secondes en millisecondes et utiliser une approche différente:Si les secondes long de la valeur n'est pas trop grand pour tenir dans un entier, cast.
Mais je vous conseille fortement d'utiliser joda time au lieu de java API calendar.
Convertir les secondes, par exemple, de jours en divisant par 86400, puis ajoutez les jours et les secondes restantes. Vous devez pour cela intelligemment, car même après division par 86400 le résultat peut être plus grand qu'un int.
Une autre façon est de convertir le calendrier de millisecondes avec getMillisOf(), ajouter de la valeur que vous souhaitez, puis le mettre avec setTimeInMillis(). C'est plus simple et avec très peu de risque de faire une erreur, n'oubliez pas de convertir vos secondes en millisecondes.
Autant que je sache, le calendrier stocke les valeurs que ints en interne, donc il n'y a aucun moyen de s'adapter à un long. Corrigez-moi si je suis mal, mais c'est ce que j'ai lu de Java calendrier. Vous devez convertir vos quelques secondes à quelques jours ou pour obtenir ce que vous voulez.
si votre nombre est grand,
l'idée est que vous le faites à la REMORQUE de TEMPS add()
donc