Données du calendrier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 842 fois - Téléchargée 29 fois

Contenu du snippet

Cette source remplit trois tableaux pour compter :
-le nb de jours par mois (nb de lundi, de mardi etc)
-le nombre de jours pairs (nb de lundi pairs, mardi pairs ...etc)
-le nombre de jours impairs (nb de lundi pairs, mardi pairs ...etc)

Source / Exemple :


'                                                  1 2 3 4 5 6 7   1 ............12
Dim TbFrequenceJour(1 To 7, 1 To 12) As Integer ' (l,m,m,j,v,s,d / janvier,..., decembre)
Dim TbFrequenceJourPAIR(1 To 7, 1 To 12) As Integer ' (l,m,m,j,v,s,d / janvier,..., decembre)
Dim TbFrequenceJourIMPAIR(1 To 7, 1 To 12) As Integer ' (l,m,m,j,v,s,d / janvier,..., decembre)
Private Sub Command2_Click()

    Dim ChronoDebut As Date
    Dim ChronoFin As Date
    Dim DateDebut As Date
    Dim MaDate As Date
    Dim NbJours As Integer
    Dim TempText As String
    Dim Jour As String
    Dim Mois As String
    Dim Pair As Boolean
    Dim Colonne As Integer

DateDebut = CDate("01/01/2005")
NbJours = 365
'compter le nombre de lundi, mardi, mercr... dans chaque mois.
'initilisation du tableau
For i = 1 To 7
    For j = 1 To 12
    TbFrequenceJour(i, j) = 0
    TbFrequenceJourPAIR(i, j) = 0
    TbFrequenceJourIMPAIR(i, j) = 0
    Next j
Next i

MaDate = DateDebut
While MaDate < CDate("31/12/2005")
    
    TempText = Format(MaDate, "dddd d mmmm yyyy", vbUseSystemDayOfWeek, vbUseSystem)
    'recupère le jour de la semaine par les deux premieres lettres
    Jour = Left(TempText, 2)
    'recupère le jour pair ou impair
    If Int(Left(MaDate, 2) / 2 * 10) = 5 Then Pair = False Else Pair = True
    'recupère le mois
    Mois = CInt(Mid(MaDate, InStr(MaDate, "/") + 1, 2))
    'remplit le tableau
    'compte les frequence en jours
    TbFrequenceJour(FctNumJour(Jour), Mois) = TbFrequenceJour(FctNumJour(Jour), Mois) + 1
    
    'compte les frequences paires/impaires
    Select Case Pair
    Case True
    TbFrequenceJourPAIR(FctNumJour(Jour), Mois) = TbFrequenceJourPAIR(FctNumJour(Jour), Mois) + 1
    Case False
    TbFrequenceJourIMPAIR(FctNumJour(Jour), Mois) = TbFrequenceJourIMPAIR(FctNumJour(Jour), Mois) + 1
    End Select
    
    MaDate = MaDate + 1
    DoEvents
Wend
Debug.Print DateDebut + 31
End Sub
Private Function FctNumJour(DeuxLettresJour As String) As Integer
Select Case DeuxLettresJour
    Case "lu"
        FctNumJour = 1
    Case "ma"
        FctNumJour = 2
    Case "me"
        FctNumJour = 3
    Case "je"
        FctNumJour = 4
    Case "ve"
        FctNumJour = 5
    Case "sa"
        FctNumJour = 6
    Case "di"
        FctNumJour = 7
    Case Else
        FctNumJour = 0
End Select
End Function

Conclusion :


merci à vbfrance et à toutes ces sources, bravo à tous.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
18 février 2011

cela de fonctionne pas
Messages postés
4
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
4 avril 2005

est ce qlqun peux m'aider
je travail avec des ocx et lorsque je change de poste ca marche pas
malgrai ke jai les installer au systeme32
donnée moi des reponse svp
Messages postés
184
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
18 août 2005

eu qu'est ce que ça fait dans la categorie: DirectX?
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
non, ca ne le fait que sur des PCs qui ont des morceaux d'anglais dedans :)
Le pire que je connaisse c'est Access via un Odbc, entre le windows, le VB, l'odbc, le access et le moteur Jet, va trouver le(s)quel(s) t'inversent les dates chez toi différemment de chez le client ^^
Messages postés
169
Date d'inscription
vendredi 27 septembre 2002
Statut
Membre
Dernière intervention
27 février 2009
1
dans ton cas ca le fera sur n'importe quel PC, car 31/12/2005... ca peut pas etre pris pour le 12/31/2005 et dans ts les cas le 01/01 reste le 01/01,
Ca coince quand t'as un jour avant 12... je m'étais fait avoir avec un prog qui calculait la date de paques, qu'avait donné le 4 novembre au lieu du 11 avril... ca fait pas sérieux...
La fonction WeekDay te donne le jour de la semaine d'une date ( x = weekday(tadate))
Afficher les 9 commentaires

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.