Ruby on Rails: Datum aus Kalenderwoche, Jahreszahl und Wochentag berechnen

Zunächst wird ein Datumsobjekt erstellt, dass auf den 1. Januar des Jahres zeigt.

date = Date.parse("01-01-"+year)
Dann wird an Hand der Tageszahl (Montag == 1) der Offset berechnet.
if date.cwday <= 4
      # Donnerstag oder kleiner: Zurueck rechnen auf Montag
      x = -8 + (date.cwday+1);
    else
      # Offset auf Folge-Woche
      x = 8 - date.cwday
    end
Mit einer kleinen Hilfsfunktion wird der Offset bezüglich des gewünschten Wochentages angepasst.
x += day_number(day_string) - 1
Zu guter letzt wird das Datum berechnet.
date + x + ( 7*(week-1) )
Hier der komplette Code:
# Berechnet das Datum zu einem Wochentag in einer Kalenderwoche in einem Jahr
  def week_to_date(week, year, day_string)
    # Datums Objekt des ersten Jahrestages
    date = Date.parse("01-01-"+year)
    # Pruefen des nummerischen Wertes des Wochentages
    # 4: Donnerstag - 1. KW ist die Woche mit dem ersten Donnerstag im Jahr
    if date.cwday <= 4
      # Donnerstag oder kleiner: Zurueck rechnen auf Montag
      x = -8 + (date.cwday+1);
    else
      # Offset auf Folge-Woche
      x = 8 - date.cwday
    end
    # Offset an Wochentag anpassen
    x += day_number(day_string) - 1
    # Datum berechnen aus 1.1. des Jahres + Offset + Anzahl der Wochen
    date + x + ( 7*(week-1) )
  end
  def day_number(day_string)
    days = {
      'Mo' => 1,
      'Di' => 2,
      'Mi' => 3,
      'Do' => 4,
      'Fr' => 5,
      'Sa' => 6,
      'So' => 7
    }
    days[day_string]
  end