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 47 48 49 50
|
Dim date_min, date_finale, date_j As Date
Dim somm, ap_j, moy As Double
Dim num_j_min, num_mois_min, num_mois_actuel, num_an_actuel, nbre_j_mois_actuel, num_an_minimale, nbre_ans, an, i, j As Integer
'on initialise i à 1
i = 1
'date minimale dans la base
date_min = Me.Historiques_barragesTableAdapter1.ScalarQueryMin_Date()
'num jour de la date minimale
num_j_min = date_min.ToString("dd")
'num mois de la date min
num_mois_min = date_min.ToString("MM")
'num de l'année de la date minimale
num_an_minimale = date_min.ToString("yyyy")
'num mois actuel
num_mois_actuel = DateTimePicker1.Value.ToString("MM")
'num de l'année actuelle
num_an_actuel = DateTimePicker1.Value.ToString("yyyy")
'nombre de jour du mois actuel
nbre_j_mois_actuel = Date.DaysInMonth(num_an_actuel, num_mois_actuel)
' on initilise an à
an = num_an_minimale
'date final de control
date_finale = CDate(nbre_j_mois_actuel & "/" & num_mois_actuel & "/" & an)
'on initialise le nombre d'années à 0
nbre_ans = 0
'on initilise la somme à 0
somm = 0
If (num_mois_min < num_mois_actuel) Or (num_mois_min = num_mois_actuel And num_j_min = 1) Then
an = num_an_minimale
Else : an = num_an_minimale + 1
End If
Do While DateTime.Compare(DateTimePicker1.Value.ToShortDateString, date_finale.ToShortDateString) > 0
For j = 1 To nbre_j_mois_actuel
date_j = CDate(j & "/" & num_mois_actuel & "/" & an)
ap_j = CDbl(Me.Matable.GetDataBy(i, date_j.ToShortDateString).Item(0).X)
somm = somm + ap_j
Next
nbre_ans = nbre_ans + 1
an = an + 1
date_finale = CDate(nbre_j_mois_actuel & "/" & num_mois_actuel & "/" & an)
Loop
moy = somm / nbre_ans |
Partager