j'ai fait deux méthodes pour obtenir une différence de date en jour et les
deux plantent de la même manière :
1) long nbMilliJour = 1000 * 60 * 60 * 24; //nb de millisecondes dans
une journée
return (int) ( ( pDate1.getTime( )+1 - pDate2.getTime( ) ) /
nbMilliJour );
2) long nbMilliJour = 1000 * 60 * 60 * 24; //nb de millisecondes dans
une journée
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
Lorsque je fait un System.out.println(pDate1+ " : diff="<resultat>);
(pDate2 est toujours égal au 16/02/2004)
j'obtient :
Fri Mar 26 00:00:00 CET 2004 : diff=39
Sat Mar 27 00:00:00 CET 2004 : diff=40
Sun Mar 28 00:00:00 CET 2004 : diff=41
Mon Mar 29 00:00:00 CEST 2004 : diff=41
Tue Mar 30 00:00:00 CEST 2004 : diff=42
Le format de date change donc au 29/03 et ma différence n'est pas bonne (il
manque un jour). Comment faire ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe Puaud
Erreurs : il n'y pas de +1 dans la première méthode ni de +1000000 dans la deuxième ! (c'était un test à la con...)
"Christophe Puaud" a écrit dans le message de news:crgd88$dr$
Bonjour,
j'ai fait deux méthodes pour obtenir une différence de date en jour et les deux plantent de la même manière : 1) long nbMilliJour = 1000 * 60 * 60 * 24; //nb de millisecondes dans une journée return (int) ( ( pDate1.getTime( ) - pDate2.getTime( ) ) / nbMilliJour ); 2) long nbMilliJour = 1000 * 60 * 60 * 24; //nb de millisecondes dans une journée Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance();
Lorsque je fait un System.out.println(pDate1+ " : diff="<resultat>); (pDate2 est toujours égal au 16/02/2004) j'obtient : Fri Mar 26 00:00:00 CET 2004 : diff9 Sat Mar 27 00:00:00 CET 2004 : diff@ Sun Mar 28 00:00:00 CET 2004 : diffA Mon Mar 29 00:00:00 CEST 2004 : diffA Tue Mar 30 00:00:00 CEST 2004 : diffB
Le format de date change donc au 29/03 et ma différence n'est pas bonne (il
manque un jour). Comment faire ?
Erreurs : il n'y pas de +1 dans la première méthode ni de +1000000 dans la
deuxième ! (c'était un test à la con...)
"Christophe Puaud" <cpuaud@ANTISPAMsopragroup.com> a écrit dans le message
de news:crgd88$dr$1@s1.news.oleane.net...
Bonjour,
j'ai fait deux méthodes pour obtenir une différence de date en jour et les
deux plantent de la même manière :
1) long nbMilliJour = 1000 * 60 * 60 * 24; //nb de millisecondes dans
une journée
return (int) ( ( pDate1.getTime( ) - pDate2.getTime( ) ) /
nbMilliJour );
2) long nbMilliJour = 1000 * 60 * 60 * 24; //nb de millisecondes dans
une journée
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
Lorsque je fait un System.out.println(pDate1+ " : diff="<resultat>);
(pDate2 est toujours égal au 16/02/2004)
j'obtient :
Fri Mar 26 00:00:00 CET 2004 : diff9
Sat Mar 27 00:00:00 CET 2004 : diff@
Sun Mar 28 00:00:00 CET 2004 : diffA
Mon Mar 29 00:00:00 CEST 2004 : diffA
Tue Mar 30 00:00:00 CEST 2004 : diffB
Le format de date change donc au 29/03 et ma différence n'est pas bonne
(il
Erreurs : il n'y pas de +1 dans la première méthode ni de +1000000 dans la deuxième ! (c'était un test à la con...)
"Christophe Puaud" a écrit dans le message de news:crgd88$dr$
Bonjour,
j'ai fait deux méthodes pour obtenir une différence de date en jour et les deux plantent de la même manière : 1) long nbMilliJour = 1000 * 60 * 60 * 24; //nb de millisecondes dans une journée return (int) ( ( pDate1.getTime( ) - pDate2.getTime( ) ) / nbMilliJour ); 2) long nbMilliJour = 1000 * 60 * 60 * 24; //nb de millisecondes dans une journée Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance();
Lorsque je fait un System.out.println(pDate1+ " : diff="<resultat>); (pDate2 est toujours égal au 16/02/2004) j'obtient : Fri Mar 26 00:00:00 CET 2004 : diff9 Sat Mar 27 00:00:00 CET 2004 : diff@ Sun Mar 28 00:00:00 CET 2004 : diffA Mon Mar 29 00:00:00 CEST 2004 : diffA Tue Mar 30 00:00:00 CEST 2004 : diffB
Le format de date change donc au 29/03 et ma différence n'est pas bonne (il
manque un jour). Comment faire ?
Christophe Puaud
On vient de me fournir une réponse, il faut ajouter : cal1.setTimeZone(new java.util.SimpleTimeZone(0, "TS")); cal2.setTimeZone(new java.util.SimpleTimeZone(0, "TS"));
Le changement de format persiste mais la différence est bonne ! Sun Mar 28 00:00:00 CET 2004 : diffA Mon Mar 29 00:00:00 CEST 2004 : diffB
On vient de me fournir une réponse, il faut ajouter :
cal1.setTimeZone(new java.util.SimpleTimeZone(0, "TS"));
cal2.setTimeZone(new java.util.SimpleTimeZone(0, "TS"));
Le changement de format persiste mais la différence est bonne !
Sun Mar 28 00:00:00 CET 2004 : diffA
Mon Mar 29 00:00:00 CEST 2004 : diffB
On vient de me fournir une réponse, il faut ajouter : cal1.setTimeZone(new java.util.SimpleTimeZone(0, "TS")); cal2.setTimeZone(new java.util.SimpleTimeZone(0, "TS"));
Le changement de format persiste mais la différence est bonne ! Sun Mar 28 00:00:00 CET 2004 : diffA Mon Mar 29 00:00:00 CEST 2004 : diffB