Da die akzeptierte Antwort immer noch falsche Ergebnisse hat mache ich einen Vergleich hier.
Option Explicit
Dim year, wn, wd, wk, Jan4, wdn, wno, nDay, Out
wn = 45
For year = 2012 to 2018
Wscript.Echo "LotPings : " & ShowDate(DateYWkWd(year,wn,1))
Wscript.Echo "Lankymart: " & Showdate(Lankymart(year,wn))
Wscript.Echo "duDE : " & Showdate( duDE(year,wn))
Wscript.Echo
Next
Function DateYWkWd(year, wn, wd)
' returns date based von VbMondeay and vbFirstFourDays
Jan4 = Dateserial(year,1,4) ' garantied to be in first week
DateYWkWd = DateAdd("ww",wn-1, DateAdd("d",wd-Weekday(Jan4,2),Jan4))
end Function
Function Lankymart(year, wn)
wd = DateAdd("ww", wn, DateSerial(year,1,1))
Lankymart = wd - WeekDay(wd, vbMonday) + 1
end Function
Function duDE(year, wn)
nDay = 4 + (wn - 1)*7 - 1
duDE = DateAdd("d", nDay, DateSerial(year,1,1))
end Function
Function ShowDate(date)
Wd = Weekday(date,vbMonday)
Wdn = WeekDayName(Wd, True,vbMonday)
Wno = datepart("ww", date, vbMonday, vbFirstFourDays)
Out = Wdn & " " & date & " WeekNo : " & Wno
If Wno <> wn Then Out = Out & " **wrong week **"
If Wd <> 1 Then Out = Out & " **wrong wkday**"
ShowDate = Out
end Function
Hier der Ausgang. Die Funktion DateYWkWd unsed werden könnte universell Providing Jahr, Woche und Tag der Woche (1 = Mon..7 = Sonne)
LotPings : Mon 11/5/2012 WeekNo : 45
Lankymart: Mon 11/5/2012 WeekNo : 45
duDE : Wed 11/7/2012 WeekNo : 45 **wrong wkday**
LotPings : Mon 11/4/2013 WeekNo : 45
Lankymart: Mon 11/11/2013 WeekNo : 46 **wrong week **
duDE : Fri 11/8/2013 WeekNo : 45 **wrong wkday**
LotPings : Mon 11/3/2014 WeekNo : 45
Lankymart: Mon 11/10/2014 WeekNo : 46 **wrong week **
duDE : Sat 11/8/2014 WeekNo : 45 **wrong wkday**
LotPings : Mon 11/2/2015 WeekNo : 45
Lankymart: Mon 11/9/2015 WeekNo : 46 **wrong week **
duDE : Sun 11/8/2015 WeekNo : 45 **wrong wkday**
LotPings : Mon 11/7/2016 WeekNo : 45
Lankymart: Mon 11/7/2016 WeekNo : 45
duDE : Mon 11/7/2016 WeekNo : 45
LotPings : Mon 11/6/2017 WeekNo : 45
Lankymart: Mon 11/6/2017 WeekNo : 45
duDE : Wed 11/8/2017 WeekNo : 45 **wrong wkday**
LotPings : Mon 11/5/2018 WeekNo : 45
Lankymart: Mon 11/12/2018 WeekNo : 46 **wrong week **
duDE : Thu 11/8/2018 WeekNo : 45 **wrong wkday**
ich habe die Wochennummer und das Jahr .. ich brauche das Datum 07.11 zu erhalten. 2016 – Bene
'DateAdd (" ww ", weekNumber, DateSerial (year, 1,1))' wird dich nah bringen. – Lankymart