Wer ist nicht schon bei der Umrechung von Fahrenheit, Reaumur und Celsius verzweifelt. Letzten Winter war es sehr kalt und im nciht mehr existenten Minthouse Forum gab es Diskussionen bzgl der Umrechnungen. Deshalb habe ich ein kleines Groovy Programm geschrieben welches typische Groovyfunktionalitäten wie z.B. closures benutzt, um diese Umrechnungen vorzunehmen. Das Schöne an Groovy ist, das diese Programme automatisch unter der Decke den java Compiler aufrufen. Damit entfällt der typische Compile an Run Schritt bei Java und ermöglich schnellere Entwicklung und Test von Groovy Programmen. Einfach das Groovy Programm ändern und einfach wieder aufrufen. So wie man es von Python kennt. Vor dem Aufruf muss man allerdings erste Groovy installiert haben. Unter Linux geht das z.B. mit apt-get install groovy
 
Das Script kann auch hier runtergeladen werden. 
 
#!/usr/bin/groovy

/*
 Dieses Script entstand anlaesslich des kalten Wetters anno 2012
 und der Diskussion im Minthouse bzgl Temperaturumrechungen
 und ist dem Minthouse fuer den naechsten BibberWinter gewidmet

 Aufruf: Bibber -48 20 55
 Ergebnis: Liste aller umgerechneten Temperaturen fuer die Aufrufargumente

*/

import java.text.DecimalFormat

def C2F = { c -> [c * 1.8 + 32, "CF"] }
def F2C = { f -> [(f-32) * 5/9,"FC"] }
def C2R = { c -> [c * 0.8, "CR"] }
def R2C = { r -> [r * 1.25, "RC"] }
def F2R = { f -> [(f-32) * 4/9, "FR"] }
def R2F = { r -> [r * 2.25 + 32, "RF"] }

def conversions = [ C2F, C2R, F2C, F2R, R2C, R2F ]

def oneArgProcessed = false

args.each { arg ->       
      
    if (arg.isInteger()) {
      arg=arg.toInteger()

      if (oneArgProcessed)
          println "-"          
      else
          oneArgProcessed = true
       
      conversions.each {   
          (v,c) = it(arg)
          def value=new DecimalFormat("0.00").format(v)
          (f,t)=c as List
          println "$arg($f) = $value($t)"
      }
    }
      
    else {
      println "Invalid number $temp skipped"
    }
}
Kommentar schreiben
Hinweis:
Die eMail ist versteckt und nicht öffentlich sichtbar. Sie wird benutzt um über neue Kommentare zu informieren.