Bonjour,
Je m'explique, dans un but d'éffectuer des statistiques il me faut ouvrir plusieurs fichiers correspondant à des dates.
Les fichiers sont stockés dans le répertoire /racine/année/mois/jour.
L'utilisateur qui execute le programme de statistique doit choisir l'intervalle de temps entre lequel il veut effectuer ces statistiques.
Il saisi l'intervalle sous forme (debut) 12/02/2008 (à) 10:00:00 (heure)
idem pour la fin.
Je dois donc ouvrir tous les fichiers compris dans l'intervalle.
Les fichiers correspondant n'existent pas forcément donc il me faut outrepasser ça
Et puis biensure après le 31/30 on change de mois et après décembre on change d'année
... C'est dure ^^
Voilà ce que j'ai écrit comme fonction après la saisie utilisateur :
Explication annexe : annee_d , mois_d, jour_d correspondent a la saisie utilisateur pour le depart des statistiques ex 24/02/2008 annee_d = 2008 mois_d = 02 jour_d = 24
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
31
32
33
34
35 while ($annee_d != $annee_f or $mois_d != $mois_f or $jour_d != $jour_f) { print "entrer dans le while\njour = $jour_d\nmois: $mois_d\nannee: $annee_d\n"; if (chdir '/donnees/SaveDoc/ProjetC/ProjetC/' . "$annee_d" . '/' . "$mois_d" == 0) { print "dossier ouvert\n"; if (open (FIC, '>' . "$jour_d") == 0) { print "fichier $jour_d ouvert dans le repertoire /$annee_d/$mois_d\n"; } else { if ($jour_d < 31) { $jour_d++; } elsif ($mois_d == 12 and $jour_d == 31) { $jour_d == 01; $mois_d == 01; $annee_d++; } elsif ($jour_d == 31) { $jour_d = 01; $mois_d++; } else { die "Oula grosse couillasse! ! ! :)"; } } } else { if ($mois_d == 12) { $mois_d = 01; $annee_d++; } else { $mois++; } } }
annee_f, mois_f, jour_f correspondent a la saisie utilisateur pour la fin des statistiques sur le meme model.
Une autre chose les jour < 10 sont sous la forme 01 -02 -03 ....
est ce que quand je fais jour++ j'obtiendrai un resultat de la forme 0x.
Partager