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

Please log in using one of these methods to post your comment:

WordPress.com Logo

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

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.