title image


Smiley Re: Erster und letzter Tag einer Woche ermitteln(Bsp:Woche2/2006)
Das kann die folgende Function:





Public Function TagInKw(ByVal lngKW As Long, _

Optional ByVal lngWochentag As VbDayOfWeek = vbMonday, _

Optional ByVal lngJahr) As Date



' ========================================================================

' Funktion:

' =========

' Ermittelt das Datum, welches ein bestimmter Wochentag in der übergebenen

' Kalenderwoche hat (z.B. den Montag einer Kalenderwoche)

'

' Eingabeparameter:

' =================

' lngKW : Kalenderwoche (als Zahl)

' lngWochentag: Wochentag der übergebenen Kalenderwoche (Montag bis Sonntag),

' der als Datum zurückgegeben werden soll

' (Default = vbMonday)

' lngJahr : Kalenderjahr, für das der Funktionsaufruf gilt

' (Default = laufendes Jahr)

'

' Rückgabewert:

' =============

' TagInKw : Datum des gewünschten Tages in der angegebenen Kalenderwoche

'

' Prämissen:

' ==========

' - Für die Funktion beginnt die Woche mit dem Montag und endet mit dem Sonntag

' - KW 1 des angegebenen Jahres ist die erste Woche, die mindestens 4 Tage hat

' ========================================================================



Dim datTmp As Date





lngJahr = IIf(IsMissing(lngJahr), Year(Date), lngJahr)



datTmp = DateAdd("d", (lngKW - 1) * 7, DateSerial(lngJahr, 1, 1))

datTmp = DateAdd("d", 1 - Weekday(datTmp, lngWochentag), datTmp)



If Format(datTmp, "ww", vbMonday, vbFirstFourDays) lngKW Then

datTmp = DateAdd("d", 7, datTmp)

End If



If (lngKW = 1 Or lngKW = 53) And _

Day(datTmp) > 4 And _

Day(datTmp) < 8 Then

datTmp = DateAdd("d", -7, datTmp)

End If



TagInKw = datTmp



End Function







Aufrufbeispiele:





Debug.Print TagInKw(17) ' Datum des Montags in KW 17 des laufenden Jahres

Debug.Print TagInKw(17, vbThursday) ' Datum des Donnerstags in KW 17 des laufenden Jahres

Debug.Print TagInKw(17, vbThursday, 2003) ' Datum des Donnerstags in KW 17 des Jahres 2003







Schönen Gruß,

Eric

Spotlight-Kicktipp gestartet!

Steig ein und trete mit Deinem Bundesliga-Tipp gegen die Besten an! :o)

http://www.kicktipp.de/spotlight/



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: