Translate

Montag, 2. Januar 2012

Montag einer Kalenderwoche ermitteln

So wie es wichtig ist die Kalenderwoche aus einem Datum ermitteln zu können (Siehe hier), ist es durchaus öfters mal von nöten das erste Datum (Montag) einer Kalenderwoche zu ermitteln.


In Access:
DatSeriell([Jahr];1;4)+[KW]*7-7-(DatSeriell([Jahr];1;2) Mod 7)

Die Felder [Jahr] und [KW] sind zu ersetzen durch ihre Feldnamen.


In Excel:
=DATUM(A2;1;4)+A1*7-7-REST(DATUM(A2;1;2);7)

Der Bezug A1 verweist auf ihre Zelle mit dem Kalenderwochenwert und der Bezug A2 verweist auf ihre Zelle mit dem Jahreswert.


In VBA:

Public Function FirstDateOfCalWeek(cWeek As Byte, Optional cYear As Variant) As Date
    If IsMissing(cYear) Then cYear = Year(Date)
    FirstDateOfCalWeek = DateSerial(cYear, 1, 4) + cWeek * 7 - 7 - (DateSerial(cYear, 1, 2) Mod 7)
End Function


Ausgegangen wird von den europäischen Standards, d.h.: 
  • der erste Tag der Woche ist der Montag
  • die erste Woche eines Jahres ist jene, die mindestens 4 Tage hat