2012-01-02 4 views
4

Partie 1Comment obtenir les jours pour la date

Dim totdays as long 
totdays = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011")) 

Le code ci-dessus retournera "31"

Je veux les jours que 31

Sortie

prévue
Monday (31/01/2011) 

Besoin d'aide sur le code VB6

Partie 2

Je veux trouver les sundays du mois donné ....

Par exemple, si je sélectionne le mois 01/2012, La requête doit donner le résultat comme celui-ci

01 
08 
15 
22 
29 

Les dates ci-dessus sont dimanche.

Sortie prévue pour 01/2012 mois

01 
08 
15 
22 
29 

Répondre

4

quelque chose comme ça (testé )

mise à jour finale du dimanche sous-requête

Comme par demande en commentd de Gopal ci-dessous

Dim strDate As String 
    Dim dtStart As Date 
    Dim dtEnd As Date 
    Dim stEnd As Date 
    Dim lngCnt As Long 
    Dim strOut As String 
    strDate = "01/2012" 
    dtStart = DateValue(strDate) 
    dtEnd = DateAdd("d", DateDiff("d", strDate, DateAdd("m", 1, strDate) - 1), dtStart) 
    lngCnt = Weekday(dtStart) - 7 
    Do 
     lngCnt = lngCnt + 7 
     strOut = strOut & Format(lngCnt, "00") & vbNewLine 
    Loop While lngCnt + 7 <= dtEnd - dtStart 
    MsgBox strOut 

mis à jour

Notez que je devais utiliser lngdays-1 pour ajouter 1 jour moins d'un mois (soit le 31-Jan-2011), sinon vous auriez eu 01-Feb-2011, le résultat

Dim strDate As String 
Dim lngdays As Long 
strDate = "01/2011" 
lngdays = DateDiff("d", strDate, DateAdd("m", 1, strDate)) 
MsgBox Format(DateAdd("d", lngdays - 1, strDate), "dddd (dd/mm/yyyy)") 

vieux

Dim lngdays As Long 
lngdays = DateDiff("d", "01/2011", DateAdd("m", 1, "01/2011")) 
MsgBox Format(DateSerial(2011, 1, lngdays), "dddd (dd/mm/yyyy)") 
+0

Je ne peux pas entrer 2011, 1, il vient de la zone de texte comme ceci "01/2011" – Gopal

+0

@ gopal J'ai mis à jour mon code en conséquence – brettdj

+0

Merci beaucoup pour votre aide, encore une chose, comment puis-je trouver le dimanche un mois. Par exemple Si je choisis 01/2011, à partir de Janvier 2011 combien de dimanche sont là, je veux trouver ... Pouvez-vous m'aider plz ..... – Gopal

0

fonction Utilisez le format comme celui-ci. Ici, j'utilisé maintenant, mais vous pouvez passer une chaîne de retour de la date et le format de DAYNAME

Format(Now, "dddd") 
0

Vous pouvez utiliser la fonction DateSerial en VB6 pour convertir une variable de chaîne ou entier à ce jour variable

Dim d As String 
Dim datevar As Date 
d = "31" 
datevar = DateSerial(2011,1, Val(d)) 
MsgBox Format(datevar,"DDDD dd/MMM/yyyy") 
+0

J'ai modifié cette donc je pourrais enlever mon downvote - je ne peux pas me rappeler pourquoi je l'ai fait en première place. – brettdj

+0

Merci de reconsidérer le vote @brettdj – Ahmad

Questions connexes