Extraire une date dans un monthcalendar

Résolu
cs_mohellebi Messages postés 104 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 1 août 2019 - 28 sept. 2014 à 23:38
jordane45 Messages postés 36365 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2022 - 1 oct. 2014 à 00:26
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

Whismeril Messages postés 17810 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 1 octobre 2022 618
29 sept. 2014 à 00:22
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
0
cs_mohellebi Messages postés 104 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 1 août 2019 2
30 sept. 2014 à 22:15
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
0
jordane45 Messages postés 36365 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2022 350
30 sept. 2014 à 22:32
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.
0
cs_mohellebi Messages postés 104 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 1 août 2019 2
Modifié par cs_mohellebi le 1/10/2014 à 00:21
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
0
jordane45 Messages postés 36365 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 1 octobre 2022 350
1 oct. 2014 à 00:26
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)
0
cs_mohellebi Messages postés 104 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 1 août 2019 2
29 sept. 2014 à 01:12
Un grand merci pour le code et l'explication , je vais essayer de l'exploiter de suite.
0