Calculer le temps écoulé entre deux dates
Bonjour,
J'ai deux date dont je veux calculer le temps ,en heurs ,entre eux:
la date est sous le format: 2011-08-02 00:00:00.0
Comment je dois procéder?
Si vous reprenez ce programme, il y a une petite erreur sur la déclaration de int aaaaB
Il faut remplacer dateA par dateB lors de la déclaration de int aaaaB,
sinon, votre calcul ne tiendra pas compte des années. :ccool:
Citation:
Envoyé par
danimo
Salut,
Tu peux utiliser Calendar et GregorianCalendar.
Les imports:
Code:
1 2
| import java.util.GregorianCalendar;
import java.util.Calendar; |
La méthode:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| // TEMPS ÉCOULÉ ENTRE DEUX DATES (EN HEURES)
public static String diffEnHeures(String dateA, String dateB)
{
//Les 2 dates sont sous la forme aaaa-mm-jj
int aaaaA = Integer.parseInt(dateA.substring(0, 4));
int mmA = Integer.parseInt(dateA.substring(5, 7));
int jjA = Integer.parseInt(dateA.substring(9));
int aaaaB = Integer.parseInt(dateA.substring(0, 4));
// A remplacer par dateB
int mmB = Integer.parseInt(dateB.substring(5, 7));
int jjB = Integer.parseInt(dateB.substring(9));
Calendar dA = new GregorianCalendar(aaaaA, mmA -1, jjA);
Calendar dB = new GregorianCalendar(aaaaB, mmB -1, jjB);
long millisA = dA.getTimeInMillis();
long millisB = dB.getTimeInMillis();
long difMillis = millisB -millisA;
String resultat = "";
long difEnHeures = difMillis / (60*60*1000);
resultat = "" + difEnHeures + " heures";
return resultat;
} |
Utilisation:
Code:
1 2 3 4 5 6
| String dateDebut = "2011-08-01";
String dateFin = "2011-08-04";
String resultat = diffEnHeures(dateDebut, dateFin);
System.out.println("Temps écoulé de " + dateDebut + " à " + dateFin + ": "
+ resultat); |
Cordialement,
Dan