I had a need to create a set of directories - one per day. Normally I would use the date in ISO format: YYYY-MM-DD since it naturally sorts in date order. However for this particular application, I wanted reverse order - most recent date at the top, older and progressively less interesting dates following.
This routine generates a directory name based on a unix timestamp value (default 'today'), that includes a sort code prefix to force reverse date ordering:
sub day_dir { my($day, $month, $year) = (localtime(shift || time))[3,4,5]; my @sym = ('1'..'6', 'A'..'Z'); my $code = $sym[(138 - $year) & 31] . $sym[(11 - $month) & 15] . $sym[(31 - $day) & 31]; return sprintf('%s-%04u-%02u-%02u', $code, $year + 1900, $month + +1, $day); }
Sample output:
WFY-2010-01-01 X11-2009-12-31 X2Y-2009-11-01 X3C-2009-10-23
You could adapt it to put the day of the week ('Mon', 'Tue', 'Wed' ...) or indeed anything you like, after the sort code.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Reverse Date Sorted Directory Names
by jwkrahn (Abbot) on Oct 23, 2009 at 03:13 UTC | |
by grantm (Parson) on Oct 23, 2009 at 07:03 UTC | |
|
Re: Reverse Date Sorted Directory Names
by roho (Bishop) on Oct 28, 2009 at 19:56 UTC | |
by grantm (Parson) on Oct 28, 2009 at 21:52 UTC | |
|
Re: Reverse Date Sorted Directory Names
by Anonymous Monk on Nov 08, 2009 at 05:36 UTC |