Syntactic Confectionery Delight PerlMonks

### Re: How to get last day of 2 months ago

by Corion (Pope)
 on Mar 11, 2011 at 16:05 UTC ( #892685=note: print w/replies, xml ) Need Help??

in reply to How to get last day of 2 months ago

The key to finding the "last day of a month" is to realize that the "last day" of a month is always one day before the "first day" of the next month. As the date of the first day of a month is easy to construct, you just have to construct the first day of the current month, then go to the last day of the month before. Then extract the year and month of that month, and construct its first day from it. Repeat until you have skipped enough months.

Personally, I like to use Time::Local and localtime, together with POSIX::strftime to manipulate and create date strings. The more heavyweight and somewhat different approach is to use DateTime, but as I often have to do date calculations, and not always in Perl, the strftime approach has worked more often for me than the DateTime approach.

Replies are listed 'Best First'.
Re^2: How to get last day of 2 months ago
by dirtdog (Monk) on Mar 11, 2011 at 16:49 UTC

Thank you all for the replies. I did figure out what i was doing wrong..I had

\$t[3]

\$t[4]-1
```use POSIX 'strftime';
my @t = (localtime(time));

my \$lastday = POSIX::mktime(0,0,0,0,\$t[4],\$t[5],0,0,-1);
my \$lastday_prev = POSIX::mktime(0,0,0,0,\$t[4]-1,\$t[5],0,0,-1);
my @ld_prev = localtime(\$lastday_prev);
my @ld = localtime(\$lastday);

my \$monthly_date_beg = strftime('%m/' . \$ld_prev[3] . '/%Y', \$t[0],\$t[
+1], \$t[2], \$t[3], \$t[4]-2, \$t[5]);
my \$monthly_date_end = strftime('%m/' . \$ld[3] . '/%Y', \$t[0],\$t[1], \$
+t[2], \$t[3], \$t[4]-1, \$t[5]);

print "beg = \$monthly_date_beg\n";
print "end = \$monthly_date_end\n";

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2018-02-25 00:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
When it is dark outside I am happiest to see ...

Results (312 votes). Check out past polls.

Notices?