UtterAccess HomeUtterAccess Wiki

Welcome Guest ( Log In | Register )

Custom Search
Edit Discussion
> FirstDayOfWeek    


Synopsis

Calculate the date of the first day of the specified week. This function is one of four (see also FirstDayOfCurrentWeek LastDayOfCurrentWeek LastDayOfWeek) that can be used to calculate the beginning or ending date of seven day week. A typical use would be in an invoicing/collections application that requires reporting on outstanding invoices that will reach a certain age in days sometime during a specific week. This UA post provides a more compact alternative to the code used in this function.

CODE
' FirstDayOfWeek
' http://www.utteraccess.com/wiki/FirstDayOfWeek
' Code courtesy of UtterAccess Wiki
' Licensed under Creative Commons License
' http://creativecommons.org/licenses/by-sa/3.0/
'
' You are free to use this code in any application,
' provided this notice is left unchanged.
'
' rev  date                          brief descripton
' 1.1  2011-02-19                    else clause modified
'
Public Function fFirstDayOfWeek(rDate As Date, rbytWeekStartsOn As Byte) As Date
' Procedure: fFirstDayOfWeek
' Description: return the date of the first day of the week in which
'              the specified day occurs
'--
   Const cstrProcedure = "fFirstDayOfWeek"

   Dim intOffset As Integer
   Dim dtmResult As Date

   On Error GoTo HandleError

   intOffset = Weekday(rDate) - rbytWeekStartsOn

   If intOffset >= 0 Then
       dtmResult = rDate - intOffset
   Else
       'dtmResult = rDate + 7 - intOffset
       dtmResult = Date - intOffset - 7
   End If

   fFirstDayOfWeek = dtmResult

HandleExit:

   Exit Function

HandleError:
   'insert custom error handler here
   'ErrorHandle Err, Erl(), cstrModule & "." & cstrProcedure
   'Resume HandleExit
End Function

Creative Commons License
FirstDayOfWeek by UtterAccess Wiki is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Editing and revision of the content is freely encouraged; for details, see Expected Usage.

Edit Discussion
Custom Search
Thank you for your support!
This page has been accessed 44,959 times.  This page was last modified 08:30, 6 April 2011 by Jack Leach. Contributions by Glenn Lloyd  Disclaimers