class Planik::Arbeitszeitkonto::TaeglichZeitkontoCalculator

Ein Zeitkonto im Rhythmus :täglich

Public Class Methods

new(zeit_von, zeit_bis) click to toggle source
# File lib/arbeitszeitkonto/taeglich_zeitkonto_calculator.rb, line 12
def initialize zeit_von, zeit_bis
  @zeit_von = zeit_von
  @zeit_bis = zeit_bis
end

Public Instance Methods

calculate(zeitspannen) click to toggle source

Liefert

  • Anzahl Sekunden, welche die gegebene :zeitspanne mit dem Zeitkonto überlappt

  • Die Reste (Zeitspanne)

# File lib/arbeitszeitkonto/taeglich_zeitkonto_calculator.rb, line 23
def calculate zeitspannen
  reste = []
  seconds = 0
  Array(zeitspannen).each do |zeitspanne|
    zeitspanne_1 = Zeitspanne.relative(zeitspanne.datum - 1, @zeit_von, @zeit_bis)
    zeitspanne_2 = Zeitspanne.relative(zeitspanne.datum, @zeit_von, @zeit_bis)
    sec, r = calc(Array(zeitspanne), [zeitspanne_1, zeitspanne_2])
    seconds+=sec
    reste.push(*r)
  end
  [seconds, reste]
end