How many million dates do you need to process per hour?

Unless it's significant, modules are definitely your friend. I hate having to fix bugs because people thought it was too expensive to load a module, and so wrote their own routine to calculate, for example, "previous business day". Something changes in the input, or you come along to the leap year in the century which isn't a leap year, or the one in four centuries which IS a leap year, after all, and things don't work. Far better to use some code which has solved all those problems.

I would suggest using unpack() to parse the date into variables, timelocal() to convert to epoch seconds, and strftime or sprintf to convert back to a timestamp.

$t1 = 20041101174146 my ( $y, $m, $d, $hh,$mm, $ss ) = unpack ("A4A2A2A2A2A2", $a ) $epoch= timelocal( $ss, $mm, $hh, $d, $m-1, $y-1900 ) ( $ss, $mm, $hh, $d, $m, $y ) = localtime( $epoch - $seconds_to_subtra +ct) $t2 = sprintf( "%d%02d%02d%02d%02d%02d", $y+1900, $m+1, $d, $hh, $mm, +$ss ); # $t2 is 20041101172646

Once you have your code working correctly, profile it. If time conversion is a major factor, you can look at writing custom conversions. But even then, leave the ordianry code in a routine so your testing can compare the two results, to ensure things are correct.

--
TTTATCGGTCGTTATATAGATGTTTGCA


In reply to Re: Date Manipulation Calculation Question by TomDLux
in thread Date Manipulation Calculation Question by EchoAngel

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.