Show
Ignore:
Timestamp:
05/09/07 23:53:00 (3 years ago)
Author:
eevee
Message:

Fixed some links to the userlist.
Vastly shortened the timespan code.
Cleaned up the userlist CSS.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • veekun/trunk/lib/Vee/View/TT.pm

    r136 r138  
    103103 
    104104# prettyprint a time duration in seconds 
     105# TODO: this could be cleaner, but it's unlikely to be changed so low-priority 
     106my @timespan_units = ( 
     107    [ year   => 31536000 ], 
     108    [ week   => 604800 ], 
     109    [ day    => 86400 ], 
     110    [ hour   => 3600 ], 
     111    [ minute => 60 ], 
     112    [ second => 1 ], 
     113); 
    105114sub _format_timespan { 
    106115    my $secs = int shift; 
    107     my ($res, @parts) = ''; 
    108     if ($secs > 31536000) { push @parts, int($secs / 31536000) . ' year'   . ($secs >= 63072000 ? 's' : ''); $secs %= 31536000 } 
    109     if ($secs > 604800)   { push @parts, int($secs / 604800)   . ' week'   . ($secs >= 1209600  ? 's' : ''); $secs %= 604800   } 
    110     if ($secs > 86400)    { push @parts, int($secs / 86400)    . ' day'    . ($secs >= 172800   ? 's' : ''); $secs %= 86400    } 
    111     if ($secs > 3600)     { push @parts, int($secs / 3600)     . ' hour'   . ($secs >= 7200     ? 's' : ''); $secs %= 3600     } 
    112     if ($secs > 60)       { push @parts, int($secs / 60)       . ' minute' . ($secs >= 120      ? 's' : ''); $secs %= 60       } 
    113     if ($secs > 0)        { push @parts, $secs . ' seconds' } 
    114     return join(', ', @parts) || '0 seconds'; 
     116    my @parts; 
     117 
     118    for my $arrayref (@timespan_units) { 
     119        my ($unit, $unit_in_seconds) = @$arrayref; 
     120        next unless $secs >= $unit_in_seconds; 
     121 
     122        my $n = int($secs / $unit_in_seconds); 
     123        $secs %= $unit_in_seconds; 
     124 
     125        push @parts, "$n $unit" . ($n > 1 ? 's' : ''); 
     126    } 
     127 
     128    @parts = @parts[0, 1] if @parts > 2; 
     129 
     130    return +( join(', ', @parts) || '0 seconds' ) . ' ago'; 
    115131} 
    116132