Isn't converting years+months+days into a number exactly what (localtime)[7] does? It's returning the day number (on a scale of 1 to 365 or 366) of the current date in the current year. The conversion has been done, leap seconds, DST, odd months, leap years and all.

I'm not trying to calculate the number of days since birth, or even the number of days between two dates for that matter, just the day number of the birth date in an arbitrary year (either last or next). While it may look like the code is trying to calculate based on the number of days from a common reference, it's actually calculating based on the day number of given year (with an adjustment for an extra leap day where neccessary).

For example Jan 1 this year is day 1. Today is day 117. If the birthdate in question was Jan 1, the days from birthday is simply 117 - 1 = 116. Jan 1 next year is also day 1. This year has 365 days, so days to next birthday is 365 - 117 + 1 = 249 (days in the year - days from today to the end of this year + days to date in next year). At no time am I actually trying to calculate the number of days between two dates, only the number of days since the beginning of a year, which (localtime)[7] does nicely. It even works through leap months, as long as you're careful about the what you consider is the number of days in the year.

Or am I still missing it?

In reply to Re^6: Calculate Age, days to next and days from last for a given birthday by ruzam
in thread Calculate Age, days to next and days from last for a given birthday by ruzam

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.