Oui, à première vue, mon titre doit vous sembler bien drôle.
Mais voici mon problème. Je souhaite obtenir une date plusieurs jour avant une autre (sans passer par des classes type calendar, Date suffit amplement), pour avoir un intervalle. Voici donc mon code :
1 2 3 4
|
long offset = x*24*3600*1000;
Date endDate = new Date();
Date startDate = new Date(endDate.getTime()-offset); |
Où il suffit de remplacer x par le nombre de jours que l'on souhaite.
Seulement, oh surprise et étonnement, quand je me rends compte que mon offset ne contient pas du tout la valeur de la multiplication. (j'ai mis 60 pour x et j'obtiens la valeur 889032704 au lieu de 5184000000 d'après la calculatrice ubuntu). Étonné, je pense donc à un dépassement, et j'essaye avec un double, rien ne change, la valeur est la même.
Pourtant, un long a largement la capacité de contenir ce nombre, en effet, si j'affiche endDate.getTime(), j'obtiens le nombre de millisecondes depuis le 1er janvier 70 sous forme de long, autant dire nettement plus que le nombre que je cherche à obtenir...
Alors je vous avoue que je commence à penser à un bug dans la machine virtuelle...
Partager