- perl -n -e '/(\d+)-(\d+)-(\d+)\.(\d+)\.(\d+)/; $monthadj=int(($2-1)/3)-1; $minadj=int($5/15); $houradj=int($4/3); print $1 * 1048576 + ( $2 + $monthadj ) * 65536 + $3 * 2048 + ( $4 + $houradj ) * 64 + $5 + $minadj,"\n"'
+ perl -n -e '/(\d+)-(\d+)-(\d+)\.(\d+)\.(\d+)/;
+ $monthadj=int(($2-1)/3)-1; # Prefer months numbered 1,4,7 and 10
+ $dayadj=$3 == 1 ? -1 : 0; # Make sure day 1 is prefered
+ $minadj=int($5/15); # Prefer multiples of 15 minutes
+ $houradj=int($4/3); # Prefer midnight,noon,etc
+ $intvalue=(
+ 1048576 * $1
+ + 65536 * ( $2 + $monthadj )
+ + 2048 * ( $3 + $dayadj )
+ + 64 * ( $4 + $houradj )
+ + $5 + $minadj
+ );
+ print $intvalue,"\n"'