Re: Holiday Calculations? - Mailing list pgsql-sql

From Brett Schwarz
Subject Re: Holiday Calculations?
Date
Msg-id 3BA7E699.71974872@yahoo.com
Whole thread Raw
In response to Holiday Calculations?  ("Josh Berkus" <josh@agliodbs.com>)
List pgsql-sql
Based on your criteria (I never really had thought about Thanksgiving
before, as far as when it hits), but here is a small Tcl proc that I
think will do it. You may need to add error checking. Takes the year
(i.e. 2001), and returns the day date (i.e. 22).

-------------------------------------------
proc getTG {year} {   set di \[clock format [clock scan $year-11-30] -format "%w"]   return [expr {30 -
((($di+1)%7)+2)}]
}

---------------------------------------------

I think this will do it (It might not work for esoteric cases...I didn't
check all). Sorry, I don't know SQL well enough to give an answer in
SQL...maybe someone else will though...or maybe you can extrapolate this
proc into SQL.

I think you may be able to modify this for Memorial and Labor day as
well.

--brett


Josh Berkus wrote:
> 
> Folks,
> 
> I'm spec'ing a calendar app for PostgreSQL, and was wondering if anyone
> had already solved the following problem:
> 
> How can I calculate the dates of American holidays?
> 
> Obviously, Christmas & New Year's are easy.  As is July 4.
> 
> However, Thanksgiving is the last Thursday in November, unless the month
> ends on a Thursday or Friday, in which case it is the next-to-last.
> Memorial Day and Labor Day are simpler, but also use the "First or Last
> Monday in x month" idea.
> 
> I was wondering if anyone had already figured out these calculations, in
> any language (SQL would be terrific).
> 
> Thanks!
> 
> -Josh
> 
> ______AGLIO DATABASE SOLUTIONS___________________________
>                                        Josh Berkus
>   Complete information technology      josh@agliodbs.com
>    and data management solutions       (415) 565-7293
>   for law firms, small businesses        fax 621-2533
>     and non-profit organizations.      San Francisco
> 
>   ------------------------------------------------------------------------
>        Name:
>        Type: Plain Text (text/plain)
>    Encoding: base64
> 
>        Name:
>        Type: Plain Text (text/plain)
>    Encoding: base64
> 
>        Name:
>        Type: Plain Text (text/plain)
>    Encoding: base64
> 
>   ------------------------------------------------------------------------
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com



pgsql-sql by date:

Previous
From: "Josh Berkus"
Date:
Subject: Re: Out of free buffers... HELP!
Next
From: Mark kirkwood
Date:
Subject: Re: Out of free buffers... HELP!