class UtmConverter {

    public static int utmZone(GeoCoordinate coordinate) {
        // code taken from: http://www.igorexchange.com/node/927
        Validate.notNull(coordinate, "coordinate must not be null");
        double lat = coordinate.getLatitude();
        double lng = coordinate.getLongitude();
        int zone = (int)floor((lng + 180.0) / 6) + 1;

        // Norway
        if (lat >= 56.0 && lat < 64.0 && lng >= 3.0 && lng < 12.0) {
            zone = 32;
        }
        // Special zones for Svalbard
        if (lat >= 72.0 && lat < 84.0) {
            if (lng >= 0.0 && lng < 9.0) {
                zone = 31;
            } else if (lng >= 9.0 && lng < 21.0) {
                zone = 33;
            } else if (lng >= 21.0 && lng < 33.0) {
                zone = 35;
            } else if (lng >= 33.0 && lng < 42.0) {
                zone = 37;
            }
        }
        return zone;
    }

    private  UtmConverter();

}