Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > adding days to start date

Reply
Thread Tools

adding days to start date

 
 
Paul
Guest
Posts: n/a
 
      03-20-2008
Hi, I have a web application that I need to add 3 days to the Now day, but
need to make sure that I skip weekends and holidays. For example if Now is
friday, 3 days + now should be tuesday, counting the current day as the first
day. Now would never occure on a weekend or holiday. Anyhow just wondering
if anyone has any ideas? Thanks.
--
Paul G
Software engineer.
 
Reply With Quote
 
 
 
 
Mark Rae [MVP]
Guest
Posts: n/a
 
      03-20-2008
"Paul" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...

> Hi, I have a web application that I need to add 3 days to the Now day, but
> need to make sure that I skip weekends and holidays. For example if Now
> is
> friday, 3 days + now should be tuesday, counting the current day as the
> first
> day. Now would never occur on a weekend or holiday. Anyhow just
> wondering
> if anyone has any ideas? Thanks.


It's a trivial matter to work out whether a DateTime variable relates to a
weekend or not by inspecting the DayOfWeek property:
http://msdn2.microsoft.com/en-us/lib...dayofweek.aspx

However, bear in mind that weekends are not always Saturday and Sunday
everywhere in the world.

As for public holidays, these differ from country to country. I'm not aware
of anything in the .NET Framework which will return whether given DateTime
and CultureInfo variables relate to a public holiday or not, although
Microsoft already know this information since it's possible to add public
holidays for individual countries to Outlook...

Therefore, what I do is hold a database table listing public holidays for
the next few years against a given country identifier. Armed with that, what
you require is easy enough by adding one day to any given DateTime variable
and incrementing a local variable by one if the resulting DateTime isn't a
weekend and doesn't appear in the database table of public holidays for the
country that you're working with. As soon as the local variable has a value
of 3, you have your result.


--
Mark Rae
ASP.NET MVP
http://www.markrae.net

 
Reply With Quote
 
 
 
 
Paul
Guest
Posts: n/a
 
      03-20-2008
Hi thanks for the detailed information. I only have to worry about holidays
and weekends in the US so this does simplify it. Sounds like I may need to
store holiday dates in a table as you did.
Thanks Paul.
--
Paul G
Software engineer.


"Mark Rae [MVP]" wrote:

> "Paul" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
>
> > Hi, I have a web application that I need to add 3 days to the Now day, but
> > need to make sure that I skip weekends and holidays. For example if Now
> > is
> > friday, 3 days + now should be tuesday, counting the current day as the
> > first
> > day. Now would never occur on a weekend or holiday. Anyhow just
> > wondering
> > if anyone has any ideas? Thanks.

>
> It's a trivial matter to work out whether a DateTime variable relates to a
> weekend or not by inspecting the DayOfWeek property:
> http://msdn2.microsoft.com/en-us/lib...dayofweek.aspx
>
> However, bear in mind that weekends are not always Saturday and Sunday
> everywhere in the world.
>
> As for public holidays, these differ from country to country. I'm not aware
> of anything in the .NET Framework which will return whether given DateTime
> and CultureInfo variables relate to a public holiday or not, although
> Microsoft already know this information since it's possible to add public
> holidays for individual countries to Outlook...
>
> Therefore, what I do is hold a database table listing public holidays for
> the next few years against a given country identifier. Armed with that, what
> you require is easy enough by adding one day to any given DateTime variable
> and incrementing a local variable by one if the resulting DateTime isn't a
> weekend and doesn't appear in the database table of public holidays for the
> country that you're working with. As soon as the local variable has a value
> of 3, you have your result.
>
>
> --
> Mark Rae
> ASP.NET MVP
> http://www.markrae.net
>
>

 
Reply With Quote
 
Mark Rae [MVP]
Guest
Posts: n/a
 
      03-20-2008
"Paul" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...

> Hi thanks for the detailed information. I only have to worry about
> holidays
> and weekends in the US so this does simplify it. Sounds like I may need
> to
> store holiday dates in a table as you did.


If it helps, this is my SQL Server function for returning the next working
day, given a country code and a starting day

CREATE FUNCTION fdtmNextWorkingDay
(
@pstrISOCountryCode char(2),
@pdtmStart smalldatetime
)
RETURNS smalldatetime
AS
BEGIN
DECLARE @blnWorkingDay bit
SET @blnWorkingDay = 0
WHILE @blnWorkingDay = 0
BEGIN
SET @pdtmStart = DATEADD(dd, 1, @pdtmStart)
IF (DATEPART(dw, @pdtmStart) BETWEEN 2 AND 6)
AND NOT EXISTS(SELECT * FROM trelPublicHoliday
WHERE sdtmDate = @pdtmStart
AND strISOCountryCode = @pstrISOCountryCode)
BEGIN
SET @blnWorkingDay = 1
END
END
RETURN @pdtmStart
END


--
Mark Rae
ASP.NET MVP
http://www.markrae.net

 
Reply With Quote
 
Paul
Guest
Posts: n/a
 
      03-20-2008
Hi thanks for the additional information. I was just wondering if there is a
source on the web that shows all of the holidays for the next 10 years,
including holidays that might show up on a weekend in one year and a weekday
on another year.
--
Paul G
Software engineer.


"Mark Rae [MVP]" wrote:

> "Paul" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
>
> > Hi thanks for the detailed information. I only have to worry about
> > holidays
> > and weekends in the US so this does simplify it. Sounds like I may need
> > to
> > store holiday dates in a table as you did.

>
> If it helps, this is my SQL Server function for returning the next working
> day, given a country code and a starting day
>
> CREATE FUNCTION fdtmNextWorkingDay
> (
> @pstrISOCountryCode char(2),
> @pdtmStart smalldatetime
> )
> RETURNS smalldatetime
> AS
> BEGIN
> DECLARE @blnWorkingDay bit
> SET @blnWorkingDay = 0
> WHILE @blnWorkingDay = 0
> BEGIN
> SET @pdtmStart = DATEADD(dd, 1, @pdtmStart)
> IF (DATEPART(dw, @pdtmStart) BETWEEN 2 AND 6)
> AND NOT EXISTS(SELECT * FROM trelPublicHoliday
> WHERE sdtmDate = @pdtmStart
> AND strISOCountryCode = @pstrISOCountryCode)
> BEGIN
> SET @blnWorkingDay = 1
> END
> END
> RETURN @pdtmStart
> END
>
>
> --
> Mark Rae
> ASP.NET MVP
> http://www.markrae.net
>
>

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Adding days to date -- -- Ruby 4 04-28-2010 09:33 AM
Date calculator, add or subtract days to or from a given date dlx_son@yahoo.com Javascript 8 06-26-2005 09:21 PM
Calculate the date after subtracting nmbr of days form a date Laery C Programming 11 02-25-2005 07:59 AM
adding days to a date, bypass weekends =?Utf-8?B?ZGhucml2ZXJzaWRl?= ASP .Net 4 12-09-2004 03:34 PM
Date, date date date.... Peter Grison Java 10 05-30-2004 01:20 PM



Advertisments