in reply to Get the Fiscal Year from Date

A simple lookup table that adjusts the year value according to the month would be much quicker than using generic date modules. This is a slight tweak of my earlier post in another thread (It's generally better to ask follow up questions in the original thread rather than start a new thread). Of course, any answer can only be as good as the information you provide. If there is further undisclosed information (the fiscal year in the UK runs 6th April through 5th April), then further tweaks may be necessary:

#! perl -slw use strict; my %months = ( FY => 0, Jan => 0, Feb => 0, Mar => 0, Apr => 0, May => 0, Jun => 0, Jul => +1, Aug => +1, Sep => +1, Oct => +1, Nov => +1, Dec => +1, ); print for map{ unpack 'x[n]A*', $_ } sort map { my( $alpha, $num ) = m[^(\S+?)\s*(\d+)$]; $num += 2000 if $num <= 49; $num += 1900 if $num <= 99; pack 'nA*', $num + $months{ $alpha }, $_; } <DATA>; __DATA__ Apr 2006 FY05 FY98 FY04 Dec 2007 Jan 1997 Jan 1998 Dec 1998

Output

C:\test>junk Jan 1997 FY98 Jan 1998 Dec 1998 FY04 FY05 Apr 2006 Dec 2007

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^2: Get the Fiscal Year from Date
by grinder (Bishop) on Jan 03, 2007 at 19:47 UTC
    A simple lookup table <...] would be much quicker than using generic date modules

    In the case of Data::Manip, this is quite true. Being a pure-Perl module, it is quite slow. On the other hand cpan:://Date::Calc is largely written in C, and as a result tends to be much faster for general date manipulations.

    But in the present scenario, I would tend to agree, a lookup table will be the way to go.

    • another intruder with the mooring in the heart of the Perl