DylanJones1
asked on
Calculating Work Week Ranges
I have two things I wish to accomplish:
1) Based on the current date determine the StartDate of the current Work Week and the End Date of the current Work Week.
2) Based on the current date generate a list of the prior 10 work week ranges and the upcoming 10 work week ranges.
I would like to implement both of these as public methods within a class. My language of choice is C#
Thanks In Advance
1) Based on the current date determine the StartDate of the current Work Week and the End Date of the current Work Week.
2) Based on the current date generate a list of the prior 10 work week ranges and the upcoming 10 work week ranges.
I would like to implement both of these as public methods within a class. My language of choice is C#
Thanks In Advance
There is one big problem with work week calculations. Observered holidays, see :http://www.codeproject.com/dotnet/HolidayCalculator.asp for that. After that work week is trivial.
mrichmon seems to have the correct solution so please do not award any points to this comment. I just wanted to chime in and and say, this is how you do it in SQL just in case someone stumbles across this and wonders:
DECLARE @Today AS DATETIME
SET @Today = GETDATE()
SELECT DATEADD(wk, DATEDIFF(wk, 0, @Today), 0) AS Monday, DATEADD(wk, DATEDIFF(wk, 4, @Today), 4) AS Friday
Jason
DECLARE @Today AS DATETIME
SET @Today = GETDATE()
SELECT DATEADD(wk, DATEDIFF(wk, 0, @Today), 0) AS Monday, DATEADD(wk, DATEDIFF(wk, 4, @Today), 4) AS Friday
Jason
ASKER
Want to thank you all for you quick input. I guess the wrinkle I failed to communicate is that I need to determine the current range on any given day.
Given today 07/12/2006 the current date range is
Work week start date 07/10/2006 work week end date 07/15/2006 - we work saturdays :-(
So basically given the current date I need to determine the date of the prior monday and the date of the upcoming saturday.
Given today 07/12/2006 the current date range is
Work week start date 07/10/2006 work week end date 07/15/2006 - we work saturdays :-(
So basically given the current date I need to determine the date of the prior monday and the date of the upcoming saturday.
flashaoy,
It actually depends. At least in all of the applications I have written or worked on a work week is a work week, regardless of holidays. Now business days are a different matter. A work week may or may not consist of 5 business days depending on holidays.
So my above is for a work week - not business days.
It actually depends. At least in all of the applications I have written or worked on a work week is a work week, regardless of holidays. Now business days are a different matter. A work week may or may not consist of 5 business days depending on holidays.
So my above is for a work week - not business days.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Assume that a week starts on Sunday and ends on SAtruday. Then the formula is:
DateTime today = DateTime.Now.Date;
DateTime weekStart;
DateTime weekEnd;
// Calculate the start date
weekStart = today.AddDays(-((int)today
// End date can be calculated based on adding 6 days to weekStart or manually as:
weekEnd = today.AddDays(6-((int)toda
As for the 10 work ranges, just do a loop subtracting 7 days from teh start date for each week range you want.