Re: Holiday Calculations?
От | Brett Schwarz |
---|---|
Тема | Re: Holiday Calculations? |
Дата | |
Msg-id | 3BA8EB71.C82840C8@yahoo.com обсуждение исходный текст |
Ответ на | Holiday Calculations? ("Josh Berkus" <josh@agliodbs.com>) |
Список | pgsql-sql |
I couldn't resist, so I went ahead and did all of them. I might be using these in a future app anyways. Again these are Tcl procs, but you may be able to transfer the logical to another language, if you want. proc getTG {year} { set di \[clock format [clock scan $year-11-30] -format "%w"] return [expr {30 - ((($di+1)%7)+2)}] } proc getMem {year} { set di \[clock format [clock scan $year-05-31] -format "%w"] return [expr {31 - ((($di+6)%7))}] } proc getLabor {year} { set di \[clock format [clock scan $year-09-01] -format "%w"] return [expr {(((8-$di)%7) + 1)}] } 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 по дате отправления: