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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| Public Class Form1
Dim DateSelectionnee, Aujourdhui As Date
Dim JourSelectionne, MoisSelectionne, AnneeSelectionnee, Quantieme, NbJours, NbMois, Trimestre, NrSemaine As Integer
Dim PremierJourSemaine, DernierJourSemaine, PremierJourDuMois, DernierJourDuMois, DateAjoute As Date
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Indique la date actuelle
Aujourdhui = Date.Now
' Initialise la variable Dateselectionnee à la date d'aujourdhui
DateSelectionnee = CDate(Aujourdhui.ToString("dd/MM/yyyy"))
' Affichage auformat date jj/mm/aa hh:mm:ss
TB_Aujourdhui.Text = Aujourdhui
' Affichage au format jj/mm/aa
TB_AujourdhuiSimple.Text = Aujourdhui.ToString("dd/MM/yyyy")
' Affichage plus complet au format 'Lundi 2 août 2010'
TB_AujourdhuiComplet.Text = Aujourdhui.ToString("dddd d MMMM yyyy")
' Affiche la date du jour dans le text Box TB_AjouteJours
TB_AjouteJours.Text = Aujourdhui.ToString("dd/MM/yyyy")
' MsgBox("Sélectionnez une date sur le calendrier")
End Sub
Private Sub Calendrier_DateSelected(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles Calendrier.DateSelected
' Date sélectionnée au format date
DateSelectionnee = Calendrier.SelectionStart
' réactualise l'affichage du textbox (juste pour faire joli)
TB_AjouteJours.Text = DateSelectionnee
' calcul les jours en plus au cas ou !
Num_AjouteJours_ValueChanged(sender, e)
' Année sélectionnée au format "Entier"
AnneeSelectionnee = DateSelectionnee.Year
' Mois sélectionné au format "Entier"
MoisSelectionne = DateSelectionnee.Month
' Jour Sélectionné au format "Entier"
JourSelectionne = DateSelectionnee.Day
' détermine le quantième (le jour de l'année 1 à 365)
Quantieme = DateSelectionnee.DayOfYear
AfficherSelection()
Calculs()
End Sub
Private Sub AfficherSelection()
' Affichage des données
TB_DateSelectionnee.Text = DateSelectionnee
TB_AnneeSelectionnee.Text = AnneeSelectionnee
TB_MoisSelectionne.Text = MoisSelectionne
TB_JourSelectionne.Text = JourSelectionne
TB_Quantieme.Text = Quantieme
End Sub
Private Sub Calculs()
' Calcul du nombre de jours entre les deux dates
NbJours = DateDiff(DateInterval.Day, Aujourdhui, DateSelectionnee)
' Calcul du nombre de mois entre les deux dates
NbMois = DateDiff(DateInterval.Month, Aujourdhui, DateSelectionnee)
' Calcul du nombre de trimestres entre les deux dates
Trimestre = DateDiff(DateInterval.Quarter, Aujourdhui, DateSelectionnee)
' Détermine le numéro de semaine de la date sélectionnée
NrSemaine = DatePart(DateInterval.WeekOfYear, DateSelectionnee, FirstDayOfWeek.Monday)
' Détermine le premier jour de la semaine de la semaine (Ce sera toujours un lundi,
' il est possible de le programmer différemment bien entendu)
' Dans cet exemple le premier jour est un lundi. Il suffit de faire la différence entre
' 2 (le lundi) et le numéro du jour
Dim Différence As Short = 2 - DatePart(DateInterval.Weekday, DateSelectionnee)
' On ajoute (un chiffre négatif) pour retrouver la date du lundi de la semaine.
PremierJourSemaine = DateSelectionnee.AddDays(Différence)
'' Cet exemple peut être concatené comme cela :
'' PremierJourSemaine = DateSelectionnee.AddDays(2 - DatePart(DateInterval.Weekday, DateSelectionnee))
'' Je préfère décomposer un peu pour mieux comprendre.
' Détermine le dernier jour de la semaine.
' Dans cet exemple ce sera le dimanche (le jours N° 1)
DernierJourSemaine = DateSelectionnee.AddDays(8 - DatePart(DateInterval.Weekday, DateSelectionnee))
' détermine le premier jour du mois (format date)
PremierJourDuMois = CDate(1 & "/" & MoisSelectionne & "/" & AnneeSelectionnee)
' détermine le dernier jour du mois (format date)
DernierJourDuMois = CDate(Date.DaysInMonth(AnneeSelectionnee, MoisSelectionne) & "/" & MoisSelectionne & "/" & AnneeSelectionnee)
'Idem pour le premier et le dernier jour de l'année
TB_1Janv.Text = CDate("01/01/" & AnneeSelectionnee)
TB_31Dec.Text = CDate("31/12/" & AnneeSelectionnee)
AfficherCalculs()
End Sub
Private Sub AfficherCalculs()
' Affichage des données
TB_NbJours.Text = NbJours
TB_NbMois.Text = NbMois
TB_Trimestre.Text = Trimestre
TB_NrSemaine.Text = NrSemaine
TB_PremJourSem.Text = PremierJourSemaine
TB_DernJourSem.Text = DernierJourSemaine
TB_PremJourMois.Text = PremierJourDuMois
TB_DernJourMois.Text = DernierJourDuMois
End Sub
Private Sub Num_AjouteJours_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Num_AjouteJours.ValueChanged
' Ajoute le nombre de jours indiqué par le NumericUpDown appelé AjouteJours
DateAjoute = DateSelectionnee.AddDays(Num_AjouteJours.Value)
TB_AjouteJours.Text = CDate(DateAjoute)
' Il est possible d'ajouter des années : remplacer AddDays par AddYears , des mois etc...
End Sub
Private Sub TB_NbJours_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TB_NbJours.TextChanged
End Sub
Private Sub TB_DateSelectionnee_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TB_DateSelectionnee.TextChanged
End Sub
End Class |
Partager