Apart from the suggestions already made, you can just do the calculation of years and months if you're just interested in "whole" month numbers, and bypass the issue of what is a month altogether:
sub months {
my (undef,undef,undef,$day,$month,$year) = localtime;
$_[0] =~ m#^(\d+)/(\d+)/(\d+)$#;
(12 * (1900 + $year - $1)) + 1 + $month - $2 - ($day < $3);
}
print months( "1999/06/30" ),$/;
print months( "2004/01/24" ),$/;
print months( "2004/01/25" ),$/;
__END__
55
1
0
Please note that I don't think "56" is the correct answer for today. It's still 6 days from the 30th, and only then we'd be 56 months from the given date. Check the other examples.
Of course, all of this doesn't take into account anything like timezones. But if you're only interested in whole month granularity, I think that's pretty ok.
Liz
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.