Ruby :: Aufgabe #42

1 Lösung Lösung öffentlich

Bei Addition von Tage nur Werktage beachten

Anfänger - Ruby von Gustl - 22.07.2013 um 11:04 Uhr
Schreibe ein Programm welches die Anzahl der addierenden Tage abfrägt und dann das Datum ausgibt.
Bei der Addition der Tage sollen aber nur die Werktage (Geschäftstage): Montag, Dienstag, Mittwoch, Donnerstag und Freitag beachtet werden.

Beispiel: Heute ist der 22.07. (Montag), wenn ich nun 7 Tage eingebe soll der 31.07. (Mittwoch) ausgegeben werden.

Lösungen:

vote_ok
von cutoff (120 Punkte) - 21.01.2014 um 17:05 Uhr
Vermutlich habe ich es viel zu umstaendlich gemacht, wie ich mich kenne ;)

Quellcode ausblenden Ruby-Code
class Werktage
  def initialize tage
    @tage = tage
    exit(1) if @tage < 1 or @tage.respond_to? :include
    @start = Time.now
  end

  def addiere
    differenz = 0
    testtag = @start.dup
    while @tage > 0 do
      testtag += (60*60*24)
      differenz += 1
      if testtag.wday < 6 and testtag.wday > 0
        @tage -= 1
      else
        @tage += 0
      end
    end
    @start +=(60*60*24*differenz)
  end
end

puts "Heute haben wir den: #{Time.now.strftime('%A, %d. %B %Y')}"
print 'Wieviele Werktage haben sie Zeit?: '
input = gets.to_i
wann = Werktage::new(input)
puts "Sie haben Zeit bis: #{wann.addiere.strftime('%A, %d. %B %Y')}"