package de.oio.refactoring.badtelefon;

public class Kunde {
	double gebuehr = 0.0;
	Tarif tarif;

	public Kunde(int tarifArt) {
		this.tarif = new Tarif(tarifArt);
	}

	public void account(int minuten, int stunde, int minute) {
		String message1 = String.format("Berechne Gesprch mit %02d min um %02d:%02d mit Tarif %s", minuten, stunde, minute, tarif.tarif);
		System.out.println(message1);
		double preis = 0;

		boolean mondschein = isMondschein(stunde);

		// Gespraechspreis ermitteln
		switch (tarif.tarif) {
		case Tarif.PRIVAT:
			minuten = minuten - 1;
			minuten = minuten < 0 ? 0 : minuten;
			if (mondschein)
				preis = minuten * 0.69;
			else
				preis = minuten * 1.99;
			break;

		case Tarif.BUSINESS:
			if (mondschein)
				preis = minuten * 0.79;
			else
				preis = minuten * 1.29;
			break;

		case Tarif.PROFI:
			preis = minuten * 0.69;
			break;

		}
		String message2 = String.format("Preis fr das Gesprch: %.2f", preis);
		System.out.println(message2);
		
		gebuehr += preis;
		String message3 = String.format("Gesamtgebhr nach Gesprch um %02d:%02d (Mondscheinzeit: %s): %.2f", stunde, minute, mondschein, gebuehr);
		System.out.println(message3);
	}

	protected static boolean isMondschein(int stunde) {
		return stunde < 9 || stunde > 18;
	}

	public double getGebuehr() {
		return gebuehr;
	}
}

@@ -356,34 +356,30 @@
 rif);%0A%09%09
-System.out.println
+writeToConsole
 (message
@@ -939,34 +939,30 @@
 eis);%0A%09%09
-System.out.println
+writeToConsole
 (message
@@ -1128,16 +1128,98 @@
 buehr);%0A
+%09%09writeToConsole(message3);%0A%09%7D%0A%0A%09protected void writeToConsole(String message1) %7B%0A
 %09%09System
@@ -1230,33 +1230,33 @@
 .println(message
-3
+1
 );%0A%09%7D%0A%0A%09protecte

remove duplicated console output, extract writeToConsole()