Tax Number Algorithm

public class TaxNumberValidator {

    public static boolean isValid(String num) {

        if (num == null || num.length() != 9) return false;
        try { Integer.parseInt(num); }
        catch (NumberFormatException e) { return false; }

        char[] digits = num.toCharArray();
        int sum = 0;
        int hash = Integer.parseInt(new Character(digits[8]).toString());

        for (int i = 0; i < 8; i++) { // digitis.length - 1
	    sum += Integer.parseInt(new Character(digits[i]).toString())
		    * Math.pow(2, (8 - i));
	}

        int rest = sum % 11;
        return (rest == 10 && hash == 0) || (hash == rest);

    }
}
(for Greece)
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s