Gustav Brock
Gustav at cactus.dk
Sat Mar 7 13:26:03 CST 2009
Hi Max I browsed the archive and found this function for your toolbox. A function like this is probably what you would need. Comments are in-line. <code> Public Function ISO_DateOfWeek( _ ByVal intYear As Integer, _ ByVal bytWeek As Byte, _ Optional ByVal bytWeekday As Byte = vbMonday) _ As Date ' Calculates date of requested weekday in a week of ' a year according to ISO 8601:1988 standard. ' ' Notes: Years less than 100 will be handled as ' two-digit years of our current year frame. ' Years less than zero returns a zero date. ' A weeknumber of zero returns the requested ' weekday of the week before week 1. ' ' 2000-12-17. Cactus Data ApS, Gustav Brock. ' The fourth of January is always included in ' the first week of year intYear. Const cbytDayOfFirstWeek As Byte = 4 ' Number of days in a week. Const cbytDaysOfWeek As Byte = 7 ' Month of January. Const cbytJanuary As Byte = 1 Dim datDateOfFirstWeek As Date Dim intISOMonday As Integer Dim intISOWeekday As Integer Dim intWeekdayOffset As Integer ' No specific error handling. On Error Resume Next If intYear > 0 Then ' Weekday of Monday. intISOMonday = WeekDay(vbMonday, vbMonday) ' Date of fourth of January in year intYear. datDateOfFirstWeek = DateSerial(intYear, cbytJanuary, cbytDayOfFirstWeek) ' Weekday of fourth of January in year intYear. intISOWeekday = WeekDay(datDateOfFirstWeek, vbMonday) ' Calculate offset from Monday in first week of year intYear. intWeekdayOffset = intISOMonday - intISOWeekday ' Weekday of requested weekday. intISOWeekday = WeekDay(bytWeekday, vbMonday) ' Calculate offset from requested weekday in first week of year intYear. intWeekdayOffset = intWeekdayOffset + intISOWeekday - intISOMonday ' Date of requested weekday in first week of year intYear. datDateOfFirstWeek = DateAdd("d", intWeekdayOffset, datDateOfFirstWeek) ' Date of requested weekday in requested week of year intYear. datDateOfFirstWeek = DateAdd("ww", bytWeek - 1, datDateOfFirstWeek) End If ISO_DateOfWeek = datDateOfFirstWeek End Function </code> /gustav >>> max.wanadoo at gmail.com 07-03-2009 19:54 >>> So, what is the final code that I can put into my Tools Box? And, could somebody put a line of comment in to say exactly what the function does and what params are expected. Thanks guys. Max