package Parkhaus;

public class Zahlung {

	public static boolean checkVisaKarte(String visakarteNummer) throws Exception {
		if (visakarteNummer.length() != 16)
			throw new Exception("Die Nummer Ihre Visakart ist falsch");

		char[] arr = visakarteNummer.toCharArray();

		int index = 0;
		int summe = 0;
		int faktor = 2;
		int Differenz = 10;
		String letzteZiffer = visakarteNummer.substring(visakarteNummer.length() - 1, visakarteNummer.length());
		int p = Integer.parseInt(letzteZiffer);
		// Umwandle jede charZiffer alse integer Ziffer
		// Verdopple jede zweite Ziffer
		for (int i = arr.length - 2; i >= 0; i--) {
			arr[i] -= '0';

			if (index == 0) {
				index++;
				arr[i] *= faktor;
				// Wenn ziffer > 9, ziehe 9 einfach ab (Quersumme)
				if (arr[i] > 9)
					arr[i] -= 9;
			}

			else
				index--;

			summe += arr[i];
		}

		summe %= 10;
		summe = Differenz - summe;

		return summe == p;

	}

}
