### Re: Determining the dayname for the last day of any given month

by greenFox (Vicar)
 on Jun 19, 2006 at 12:10 UTC ( #556236=note: print w/replies, xml ) Need Help??

Date::Calc's Day_of_Week function will do exactly what you want. I have the following snippet which I used once before when I could not install Date::Calc. Unfortunately I did not record it's provenance and I googled around and couldn't find it :( I seem to recall it coming from one of our esteemed monks though...

```# Return the day (1..7) that the first day of the given month/year fal
+ls
# on. Uses "Zeller's Confluence", which I don't claim to understand.
#
sub Day_of_Week {
my(\$year, \$month, \$day) = @_;   # \$month in (1..12), \$year as YYYY
\$month-=1;
if ( \$month < 2 ) {
\$month += 12;
--\$year;
}
my \$z1 = (26 * (\$month + 2)) / 10;
my \$z2 = int((125 * \$year) / 100);
my \$day_of_week = (\$z1 + \$z2 - int(\$year / 100) + int(\$year / 400))
+% 7;
return \$day_of_week ? \$day_of_week : 7;
}

It would need a wrapper to do what you want, subtract one (previous day) and wrap to seven if result zero...

--
Do not seek to follow in the footsteps of the wise. Seek what they sought. -Basho

Create A New User
Node Status?
node history
Node Type: note [id://556236]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (4)
As of 2018-04-25 05:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My travels bear the most uncanny semblance to ...

Results (88 votes). Check out past polls.

Notices?