Bonjour, j'ai deux problèmes.
Sur le premier, je voulais utiliser des exceptions pour gérer un problème. Par exemple, si l'utilisateur entre un numéro qui n'est pas conforme, cad dont la taille n'est pas comprise entre 10 et 999, ou vaut un nombre interdit (ce ne sont que des exemples); donc s'il entre un numéro interdit je devrais renvoyer une exception. En fait, je n'ai pas vu cela en cours et je voudrais biens améliorer mon application en les utilisant. Quelqu'un pourrait il m'expliquer comment les utilise-t-on?
Deuxièmement, je dois faire un petit algorithme qui doit déterminer le temps en secondes passé par un utilisateur sur Internet en heures creuses et en heures pleines. Sachant que je dispose de son temps de connection en secondes, et de sa date de connection; voilà mon algorithme :
Le problème est que je ne maitrise pas trop bien les objets Date, j'ai dû apprendre en utilisant la bibliothèque de classes de chez Sun. Je me demande s'il y a un moyen de faire plus simple. Par exemple en ne passant pas par les Calendar mais en comparant les dates de connection, déconnection avec un objet Date dont seules les champs d'heures serait initialisés et ensuite il suffirait de comparer si la date vient avant ou après l'heure limite...Mais je n'y arrive pas...
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
27
28
29
30 private void calculHeurePleineCreuse (int duree) { dureeHeurePleine = 0; dureeHeureCreuse = 0; Calendar start = new GregorianCalendar(); start.setTime(dateDebutAppel); Calendar end = new GregorianCalendar(); end.setTime( findEndConnectionDate(dateDebutAppel, duree) ); // la méthode permet de trouver la date de déconnection, elle est supposée fonctionnelle :wink: while (start.before(end)) { if (start.get(end.HOUR_OF_DAY) < 8 || ((start.get(end.HOUR_OF_DAY) == 8) && (start.get(end.MINUTE) == 0) && (start.get(end.SECOND) == 0) && (start.get(end.MILLISECOND) == 0))) dureeHeureCreuse ++; else if (start.get(end.HOUR_OF_DAY) < 19 || ((start.get(end.HOUR_OF_DAY) == 19) && (start.get(end.MINUTE) == 0) && (start.get(end.SECOND) == 0) && (start.get(end.MILLISECOND) == 0))) dureeHeurePleine ++; else dureeHeureCreuse ++; start.setTimeInMillis(start.getTimeInMillis() + 1000); }
Si des âmes charitables pouvaient m'éclairer...![]()
D'avance Merci![]()
Partager