Bonjour,
Quel est le meilleur moyen pour additionner des durées stockées au format String hh:mm ?
Ex :
Résultat attendu :Code:
1
2
3
4 String t1 ="15:50" String t2="2:10" String t3="1:05"
Code:String somme="19:05";
Version imprimable
Bonjour,
Quel est le meilleur moyen pour additionner des durées stockées au format String hh:mm ?
Ex :
Résultat attendu :Code:
1
2
3
4 String t1 ="15:50" String t2="2:10" String t3="1:05"
Code:String somme="19:05";
Je pense que le mieux est de convertir en minutes, des les additionner et de revenir en hh:mm.
Pour le coup, Joda-Time devrait aider pas mal.
Sinon, la biblio de base Java n'est pas pratique pour ça. Tu devrais convertir ces Strings en un nombre de minutes, additionner ces minutes, et transformer le résultats en un nombre d'heures et de minutes.
C'est jamais que des multiplications et divisions par 60.
je ferais du parsing + addition à la main. Pour les quelques lignes que ça représente, ça vaux pas le coup de jouer avec des libriaries supplémentaires ou se creuser les méninges avec l'api Calendar et le dateformat :aie:
Merci à tous.
J'ai opté pour le calcul manuel.
Voici l'algo :
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
29
30
31
32
33 ... Iterator tab = allFormationHc.iterator(); int sommeHeures = 0; int sommeMinutes = 0; while (tab.hasNext()) { FormationHc maFormation = null; maFormation=(FormationHc) tab.next(); String maDuree=null; maDuree = maFormation.getDureeFormation(); int indexSep = maDuree.indexOf(":"); // heure String heureStr = maDuree.substring(0, indexSep); int heure = Integer.parseInt(heureStr); // min String minStr= maDuree.substring(indexSep+1, maDuree.length()); int min = Integer.parseInt(minStr); sommeHeures += heure; sommeMinutes += min; } System.out.println("==>total heure : "+sommeHeures); System.out.println("==>total min : "+sommeMinutes); sommeHeures += sommeMinutes/60; sommeMinutes = sommeMinutes%60; System.out.println("==>total final : "+sommeHeures+":"+sommeMinutes);