Extraire une date dans un monthcalendar [Résolu]

cs_mohellebi 103 Messages postés mercredi 31 octobre 2007Date d'inscription 10 juin 2018 Dernière intervention - 28 sept. 2014 à 23:38 - Dernière réponse : jordane45 22508 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 septembre 2018 Dernière intervention
- 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
Afficher la suite 

Votre réponse

6 réponses

Whismeril 12023 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 18 septembre 2018 Dernière intervention - 29 sept. 2014 à 00:22
0
Merci
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
cs_mohellebi 103 Messages postés mercredi 31 octobre 2007Date d'inscription 10 juin 2018 Dernière intervention - 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
jordane45 22508 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 septembre 2018 Dernière intervention - 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.
cs_mohellebi 103 Messages postés mercredi 31 octobre 2007Date d'inscription 10 juin 2018 Dernière intervention - 1 oct. 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
jordane45 22508 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 septembre 2018 Dernière intervention - 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)
Commenter la réponse de Whismeril
cs_mohellebi 103 Messages postés mercredi 31 octobre 2007Date d'inscription 10 juin 2018 Dernière intervention - 29 sept. 2014 à 01:12
0
Merci
Un grand merci pour le code et l'explication , je vais essayer de l'exploiter de suite.
Commenter la réponse de cs_mohellebi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.