in reply to Date Manipulation Calculation Question
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
|
|---|