Extraire une date dans un monthcalendar [Résolu]

Signaler
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
-
Messages postés
28935
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juillet 2020
-
Bonsoir,
de puis quelque temps je développe une application de gestion facturation avec visual basic 2010 sous sql serveur 2008, dans l'un des modules de gestion des dates je cherche à extraire par exemple la date de tous les samedis et dimanches de mois octobre.
Merci d'avance pour votre aide

2 réponses

Messages postés
14474
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
9 juillet 2020
420
Bonsoir, pas besoin d'un monthcalendar.

Tu regardes quel est le jour du 1er octobre, tu décales pour arriver au premier samedi (ou dimanche), tu le stockes.
Tu ajoutes 7 jours et tu stockes, puis 7 et tu stockes, et encore 7 jours tu stockes. Là nous avons 4 samedi, les moi faisant tous au moins 28 jours, il y a forcément 4 ou 5 samedi, donc on ajoute 7 jours, on regarde si on est encore en octobre et si oui on stocke.

Voilà le code de base, à toi de le généraliser

    Public Function Resultats() As List(Of Date)
        Dim annee As Integer = Date.Now.Year
        Dim unOctobre As New Date(annee, 10, 1) 'initie le premier octobre

        'les jours de la semaine sont indéxés ainsi: Dimanche, Lundi, Mardi, Mercredi, Vendredi, Samedi, de 0 à 6
        Dim jour As DayOfWeek = unOctobre.DayOfWeek

        Dim samedi As Date = unOctobre.AddDays(6 - CInt(jour)) 'initie le premier samedi du moi

        Dim mesSamedis As New List(Of Date)() 'initie la liste à retourner
        mesSamedis.Add(samedi) 'y ajoute le premier samedi
        mesSamedis.Add(samedi.AddDays(7)) 'y ajoute le 2eme samedi
        mesSamedis.Add(samedi.AddDays(14)) 'y ajoute le 3eme samedi
        mesSamedis.Add(samedi.AddDays(21)) 'y ajoute le 4eme samedi est en octobre
        If samedi.AddDays(28).Month = 10 Then 'et si le 5eme est en octobre on le prend aussi
            mesSamedis.Add(samedi.AddDays(28))
        End If


        Return mesSamedis
    End Function
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
2
Bonsoir,Whismeril
Désolé du retard car j étais sur d'autre programme, après je sais bien que c'est nul de ma part mais je n'arrive pas à afficher la variable mesSamedis dans une listebox par exemple
Merci encore de m'aider d'avantage
Messages postés
28935
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juillet 2020
332
Bonsoir.

1 - Tu colles le code de Whism dans ton programme (dans un module par exemple)

2 - Tu y fais appelle dans ton code
Dim maVariableToto As List(Of Date)
   maVariableToto  = Resultats()

3 - TU boucles sur la variable : maVariableToto pour alimenter ta listbox..
... tu trouveras un exemple pour parcourir une liste ici :
http://msdn.microsoft.com/en-us/library/bwabdf9z%28v=vs.110%29.aspx

Pour ce qui est d'ajouter les infos à une listbox.. je pense que tu sais faire.
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
2
voila le code que j ai utilisé, ça marche nickel,
mesSamedis.ForEach(AddressOf ListBox1.Items.Add)
un grand merci pour Whismeril et jordane45 ainsi qu à toute l 'équipe du site
Messages postés
28935
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juillet 2020
332
N'oublies pas de clore le sujet si c'est bon..
(en cliquant sur le lien MARQUER COMME RESOLU sous le titre de ta question)
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
2
Un grand merci pour le code et l'explication , je vais essayer de l'exploiter de suite.