On Mon, 11 Dec 2006 18:18:00 -0500, Phillip Vong wrote:
> Thanks, but that didn't work. Your code just took the date back 7 days
> INCLUDING WEEKENDS. If the textbox is 12/11/06, it is now 12/4/06. If I
> change the code to -1, it will go back one day but it does not disregard the
> weekends. How do you disregard the weekends?
Hey Philip,
Try this out. Its not pretty but it works
sub Main
' This should return monday the 11th
Console.WriteLine( _
GetLastBusinessDay(new DateTime(2006,12,12),1))
'This should return friday the 8th
Console.WriteLine( _
GetLastBusinessDay(new DateTime(2006,12,12),2))
Console.ReadLine()
end sub
function GetLastBusinessDay (theDate as DateTime, daysAgo as Integer) as
DateTime
'
' Some local variables
'
dim counter as integer
dim temp as DateTime =theDate
'
' Put in a loop
'
while true
'
' Do some error checking
'
if theDate=DateTime.MinValue
return DateTime.MinValue
end if
'
' Decrement the day
'
temp= temp.AddDays(-1)
'
' Check if it is a weekday
'
select case temp.DayOfWeek
case DayOfWeek.Monday to DayOfWeek.Friday
'
' It is! Increment the counter
'
counter=counter+1
end select
'
' Now check if the counter is equal to
' the days we want
'
if counter=daysago then
return temp
end if
end while
end function
--
Bits.Bytes
http://bytes.thinkersroom.com