distance_of_time_in_words_pl

Witam,

Może komuś się przyda.

[code=“ruby”]def distance_of_time_in_words_pl(from_time, to_time = 0, include_seconds = false)
from_time = from_time.to_time if from_time.respond_to?(:to_time)
to_time = to_time.to_time if to_time.respond_to?(:to_time)
distance_in_minutes = (((to_time - from_time).abs)/60).round
distance_in_seconds = ((to_time - from_time).abs).round

     case distance_in_minutes
       when 0..1
         return (distance_in_minutes == 0) ? 'mniej niż minutę' : '1 minutę' unless include_seconds
         case distance_in_seconds
           when 0..4   then 'około 5 sekund'
           when 5..9   then 'około 10 sekund'
           when 10..19 then 'około 20 sekund'
           when 20..39 then 'pół minuty'
           when 40..59 then 'około minutę'
           else             '1 minutę'
         end

       when 2..4, 22..24, 32..34, 42..44            then "#{distance_in_minutes} minuty"
       when 5..21, 25..31, 35..41                   then "#{distance_in_minutes} minut"
       when 45..89                                  then 'około 1 godzinę'
       when 90..1439
            godziny = (((to_time - from_time).abs)/3600).round
            case godziny
              when 1        then "#{godziny} godzinę"
              when 2..4, 22..24     then "około #{godziny} godziny"
              when 5..21    then "około #{godziny} godzin"
              else               'ponad 24 godziny'
            end
            
       when 1440..2879      then '1 dzień'
       when 2880..43199     then "#{(distance_in_minutes / 1440).round} dni"
       when 43200..86399    then '1 miesiąc'
       when 86400..525959   
            miesiace = (((to_time - from_time).abs)/(3600*24*30)).round
            case miesiace
              when 2..4     then "#{miesiace} miesiące"
              when 5..12    then "#{miesiace} miesięcy"
            end
       when 525960..1051919 then 'ponad 1 rok'
       else                      
            lata = (((to_time - from_time).abs)/(3600*24*30*12)).round
            case lata
              when 2..4     then "#{lata} lata"
              when 5        then '5 lat'
              else          'ponad 5 lat'
            end
     end
   end[/code]

łukasz