Private Function FirstMondayOfMonth _
( _
ByRef iYear As Integer, _
ByRef iMonth As Integer _
) As Date
If Weekday(DateSerial(iYear, iMonth, 1), vbMonday) = 1 Then
FirstMondayOfMonth = DateSerial(iYear, iMonth, 1)
Else
FirstMondayOfMonth = DateSerial(iYear, iMonth, 1) + (8 -
Weekday(DateSerial(iYear, iMonth, 1), vbMonday))
End If
End Function
Private Function MondaysOfMonth _
( _
ByRef iYear As Integer, _
ByRef iMonth As Integer _
) As Date()
Dim dt() As Date
Dim i As Integer
ReDim dt(0)
dt(0) = FirstMondayOfMonth(iYear, iMonth)
Do While Month(dt(i) + 7) = iMonth
i = i + 1
ReDim Preserve dt(i)
dt(i) = dt(i - 1) + 7
Loop
MondaysOfMonth = dt
End Function
Private Function MondaysOfYear _
( _
ByRef iYear As Integer _
) As Date()
Dim dt() As Date
Dim i As Integer
ReDim dt(0)
dt(0) = DateSerial(iYear, 1, 1)
Do While Year(dt(i) + 7) = iYear
i = i + 1
ReDim Preserve dt(i)
dt(i) = dt(i - 1) + 7
Loop
MondaysOfYear = dt
End Function
--
Cordialement
Zoury
Microsoft Visual Basic MVP
_________________________________________
Merci de répondre dans le newsgroup ,`:O)
La FAQ VB
http://faq.vb.free.fr
API-Guide, indispensable pour les APIs
http://www.allapi.net/agnet/apiguide.shtml
Mz-Tools, add-in pour VB
http://www.mztools.com/
*************************************************************
"vinny" <vbernier@sto.ca> wrote in message
news:017501c2d847$be09dbf0$a201280a@phx.gbl...
Salut,
Est-ce quelqu'un peux me dire si une fonction existe pour
déterminer la date de tous les lundi, soit pour un mois
ou pour une année.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
le_troll
Ah, ben si c'est le 1er lundi du mois ou de l'année, ça avance, lol, avant c'était le numéro du premier jour de la semaine, je propose en 17 lignes :
dim date_base as date dim lundi(12) as date dim i as long dim j as long date_base = "31" & "/" & format(j,"00") & "/" & N-1 j = 1 for i = 1 to 366 date_base = date_base + i bis: if WeekDay(date_base) = 2 then lundi(j) = date_base j = j + 1 if j > 12 then exit for date_base = "01" & "/" & format(j,"00") & "/" & N goto bis endif next i
-- Merci, @+, bye, Joe troll75 AROBASE iFrance POINT com ------------------------------------------ Ce message est plein de virus "certifiés" Le_Troll, éleveur de Trolls depuis César, qui disait: Avec une hache, celui qui tient le manche a toujours raison ! ------------------------------------------
" Teddy" a écrit dans le message de news:
Essaie ces fonctions :
Private Function FirstMondayOfMonth _ ( _ ByRef iYear As Integer, _ ByRef iMonth As Integer _ ) As Date
If Weekday(DateSerial(iYear, iMonth, 1), vbMonday) = 1 Then FirstMondayOfMonth = DateSerial(iYear, iMonth, 1) Else FirstMondayOfMonth = DateSerial(iYear, iMonth, 1) + (8 - Weekday(DateSerial(iYear, iMonth, 1), vbMonday)) End If
End Function
Private Function MondaysOfMonth _ ( _ ByRef iYear As Integer, _ ByRef iMonth As Integer _ ) As Date()
Dim dt() As Date Dim i As Integer
ReDim dt(0) dt(0) = FirstMondayOfMonth(iYear, iMonth) Do While Month(dt(i) + 7) = iMonth i = i + 1 ReDim Preserve dt(i) dt(i) = dt(i - 1) + 7 Loop
MondaysOfMonth = dt
End Function
Private Function MondaysOfYear _ ( _ ByRef iYear As Integer _ ) As Date()
Dim dt() As Date Dim i As Integer
ReDim dt(0) dt(0) = DateSerial(iYear, 1, 1) Do While Year(dt(i) + 7) = iYear i = i + 1 ReDim Preserve dt(i) dt(i) = dt(i - 1) + 7 Loop
MondaysOfYear = dt
End Function
-- Cordialement Zoury
Microsoft Visual Basic MVP _________________________________________ Merci de répondre dans le newsgroup ,`:O)
La FAQ VB http://faq.vb.free.fr
API-Guide, indispensable pour les APIs http://www.allapi.net/agnet/apiguide.shtml
Mz-Tools, add-in pour VB http://www.mztools.com/
************************************************************* "vinny" wrote in message news:017501c2d847$be09dbf0$ Salut,
Est-ce quelqu'un peux me dire si une fonction existe pour déterminer la date de tous les lundi, soit pour un mois ou pour une année.
Merci
Ah, ben si c'est le 1er lundi du mois ou de l'année, ça avance, lol, avant
c'était le numéro du premier jour de la semaine, je propose en 17 lignes :
dim date_base as date
dim lundi(12) as date
dim i as long
dim j as long
date_base = "31" & "/" & format(j,"00") & "/" & N-1
j = 1
for i = 1 to 366
date_base = date_base + i
bis:
if WeekDay(date_base) = 2 then
lundi(j) = date_base
j = j + 1
if j > 12 then exit for
date_base = "01" & "/" & format(j,"00") & "/" & N
goto bis
endif
next i
--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------
" Teddy" <teddy@wanadoo.fr> a écrit dans le message de news:
eeEzgzmeEHA.2468@TK2MSFTNGP12.phx.gbl...
Essaie ces fonctions :
Private Function FirstMondayOfMonth _
( _
ByRef iYear As Integer, _
ByRef iMonth As Integer _
) As Date
If Weekday(DateSerial(iYear, iMonth, 1), vbMonday) = 1 Then
FirstMondayOfMonth = DateSerial(iYear, iMonth, 1)
Else
FirstMondayOfMonth = DateSerial(iYear, iMonth, 1) + (8 -
Weekday(DateSerial(iYear, iMonth, 1), vbMonday))
End If
End Function
Private Function MondaysOfMonth _
( _
ByRef iYear As Integer, _
ByRef iMonth As Integer _
) As Date()
Dim dt() As Date
Dim i As Integer
ReDim dt(0)
dt(0) = FirstMondayOfMonth(iYear, iMonth)
Do While Month(dt(i) + 7) = iMonth
i = i + 1
ReDim Preserve dt(i)
dt(i) = dt(i - 1) + 7
Loop
MondaysOfMonth = dt
End Function
Private Function MondaysOfYear _
( _
ByRef iYear As Integer _
) As Date()
Dim dt() As Date
Dim i As Integer
ReDim dt(0)
dt(0) = DateSerial(iYear, 1, 1)
Do While Year(dt(i) + 7) = iYear
i = i + 1
ReDim Preserve dt(i)
dt(i) = dt(i - 1) + 7
Loop
MondaysOfYear = dt
End Function
--
Cordialement
Zoury
Microsoft Visual Basic MVP
_________________________________________
Merci de répondre dans le newsgroup ,`:O)
La FAQ VB
http://faq.vb.free.fr
API-Guide, indispensable pour les APIs
http://www.allapi.net/agnet/apiguide.shtml
Mz-Tools, add-in pour VB
http://www.mztools.com/
*************************************************************
"vinny" <vbernier@sto.ca> wrote in message
news:017501c2d847$be09dbf0$a201280a@phx.gbl...
Salut,
Est-ce quelqu'un peux me dire si une fonction existe pour
déterminer la date de tous les lundi, soit pour un mois
ou pour une année.
Ah, ben si c'est le 1er lundi du mois ou de l'année, ça avance, lol, avant c'était le numéro du premier jour de la semaine, je propose en 17 lignes :
dim date_base as date dim lundi(12) as date dim i as long dim j as long date_base = "31" & "/" & format(j,"00") & "/" & N-1 j = 1 for i = 1 to 366 date_base = date_base + i bis: if WeekDay(date_base) = 2 then lundi(j) = date_base j = j + 1 if j > 12 then exit for date_base = "01" & "/" & format(j,"00") & "/" & N goto bis endif next i
-- Merci, @+, bye, Joe troll75 AROBASE iFrance POINT com ------------------------------------------ Ce message est plein de virus "certifiés" Le_Troll, éleveur de Trolls depuis César, qui disait: Avec une hache, celui qui tient le manche a toujours raison ! ------------------------------------------
" Teddy" a écrit dans le message de news:
Essaie ces fonctions :
Private Function FirstMondayOfMonth _ ( _ ByRef iYear As Integer, _ ByRef iMonth As Integer _ ) As Date
If Weekday(DateSerial(iYear, iMonth, 1), vbMonday) = 1 Then FirstMondayOfMonth = DateSerial(iYear, iMonth, 1) Else FirstMondayOfMonth = DateSerial(iYear, iMonth, 1) + (8 - Weekday(DateSerial(iYear, iMonth, 1), vbMonday)) End If
End Function
Private Function MondaysOfMonth _ ( _ ByRef iYear As Integer, _ ByRef iMonth As Integer _ ) As Date()
Dim dt() As Date Dim i As Integer
ReDim dt(0) dt(0) = FirstMondayOfMonth(iYear, iMonth) Do While Month(dt(i) + 7) = iMonth i = i + 1 ReDim Preserve dt(i) dt(i) = dt(i - 1) + 7 Loop
MondaysOfMonth = dt
End Function
Private Function MondaysOfYear _ ( _ ByRef iYear As Integer _ ) As Date()
Dim dt() As Date Dim i As Integer
ReDim dt(0) dt(0) = DateSerial(iYear, 1, 1) Do While Year(dt(i) + 7) = iYear i = i + 1 ReDim Preserve dt(i) dt(i) = dt(i - 1) + 7 Loop
MondaysOfYear = dt
End Function
-- Cordialement Zoury
Microsoft Visual Basic MVP _________________________________________ Merci de répondre dans le newsgroup ,`:O)
La FAQ VB http://faq.vb.free.fr
API-Guide, indispensable pour les APIs http://www.allapi.net/agnet/apiguide.shtml
Mz-Tools, add-in pour VB http://www.mztools.com/
************************************************************* "vinny" wrote in message news:017501c2d847$be09dbf0$ Salut,
Est-ce quelqu'un peux me dire si une fonction existe pour déterminer la date de tous les lundi, soit pour un mois ou pour une année.
Merci
Zoury
une petite erreur s'était glisser dans le code à l'époque. C'est ma faute j'avoue.. ;O)
dans la fonction MondaysOfYear, il faut remplacer cette ligne :
dt(0) = DateSerial(iYear, 1, 1)
ceci : dt(0) = FirstMondayOfMonth(iYear, 1)
-- Cordialement Yanick Lefebvre - MVP pour Visual Basic Le français se refait une beauté, parlons en : http://www.orthographe-recommandee.info/
une petite erreur s'était glisser dans le code à l'époque. C'est ma faute
j'avoue.. ;O)
dans la fonction MondaysOfYear, il faut remplacer cette ligne :
dt(0) = DateSerial(iYear, 1, 1)
ceci :
dt(0) = FirstMondayOfMonth(iYear, 1)
--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
Le français se refait une beauté, parlons en :
http://www.orthographe-recommandee.info/