Bonjour à tous,
Ha cela m’énerve, j'ai vraiment du mal avec la manipulation de date.
Donc j'expose mon souci:
Je dois comparer les données stocké dans un Dictionnaire (Date,Double)
Exemple de données:
Key Donnée
20/10/2011 07:00:00 / 0
20/10/2011 07:10:00 / 0
20/10/2011 07:20:00 / 5
20/10/2011 07:30:00 / 5
20/10/2011 07:40:00 / 6
20/10/2011 07:50:00 / 4
20/10/2011 08:00:00 / 0
20/10/2011 08:10:00 / 0
20/10/2011 08:20:00 / 0
20/10/2011 08:30:00 / 2
20/10/2011 08:40:00 / 2
20/10/2011 08:50:00 / 0
l'exemple n'est qu'un exemple car je peux avoir des données sur plusieurs jour voir années, comparer seulement les minutes ne suffirait pas.
Les données indique une puissance fourni par un groupe électrogène. Lorsqu'elle est à 0 c'est qu'il est arrêté, toutes autres valeur indique qu'il est en fonctionnement.
Je dois récupérer, concernant les dates: (Peut donc être en heures, minutes,jours, mois, années, suivant la taille du fichier)
1) La durée de fonctionnement total.
2) Intervalle minimum entre chaque fonctionnement.
3) Intervalle maximum entre chaque fonctionnement.
4) La moyenne de ces intervalles.
j'ai commencé et je continue après l’écriture de ce post.
C'est pas encore fini, et non fonctionnels , mais je sens que je m'enlise.
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
36
37
38
39
40
41
42
43
44
45
46 Public Function TempUtilisation(ByVal Liste As Dictionary(Of Date, Double), ByRef DateMin As Date, ByRef DateMax As Date, ByRef DateAver As Date) As Date Dim OneMesure As Boolean = True Dim OneDurree As Boolean = True Dim SaveDateOne As Date Dim SaveDateTwo As Date Dim DureeFonctionnement As Date Dim DureeTotal As Date Dim Production As Boolean = False Try For Each Dt As Date In Liste.Keys If Liste(Dt) <> 0 Then If Not Production Then SaveDateOne = Dt Production = True Else SaveDateTwo = Dt End If Else If Production Then DureeFonctionnement = Convert.ToDateTime(DateTime.op_Subtraction(SaveDateTwo, SaveDateOne)) If OneMesure Then DateMin = DureeFonctionnement DateMax = DureeFonctionnement OneMesure = False Else If DureeFonctionnement < DateMin Then DateMin = DureeFonctionnement End If If DureeFonctionnement > DateMax Then DateMax = DureeFonctionnement End If If OneDurree Then End If End If End If End If Next Return DureeTotal Catch ex As Exception Return Nothing End Try End Function
Partager