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?
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?
C'est le genre de question basique qui se trouve via Google ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part int nbHeures = ((date2.getTime() - date1.getTime()) /3600000);
Voici un exemple de possibilité :
source
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm"); try { Date deb = sdf.parse("1982/03/24 09:30"); Date fin = sdf.parse("2005/02/21 19:30"); long diff = deb.getTime() - fin.getTime(); float nbHeures = diff / 3600000.0f; } catch (ParseException ex) { }
Je te conseil de regarder la javadoc pour SimpleDateFormat.
Cordialement,
Patrick Kolodziejczyk.
Salut,
Tu peux utiliser Calendar et GregorianCalendar.
Les imports:
La méthode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 import java.util.GregorianCalendar; import java.util.Calendar;
Utilisation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // 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)); 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; }
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Dan
L'idéal étant tout de même, rappelons-le, de ne pas reprendre ce programme.
Bonjour,
Désolé de déterrer ce vieux sujet.
J'ai un problème similaire, mais j'aimerais ressortir l'intervalle entre deux dates mais sous forme années/mois/jours.
Mais il y a les années bissextiles....
Existe t-il une méthode toue prête pour cela?
merci
Salut,
Avec l'API java.time du JDK 8, tu peux utiliser LocalDate et Period pour faire ça. Tu as justement un exemple de ce que tu cherches dans le tutoriel Oracle : https://docs.oracle.com/javase/tutor...so/period.html
Tu peux regarder la FAQ également : http://java.developpez.com/faq/java?...eriode-en-Java
Pour les versions antérieures de Java, tu trouveras des méthodes similaires dans l'API externe JodaTime.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager