private static int getZoneNumber(final double lat, final double lon) {
        // Make sure the longitude 180.00 is in Zone 60
        if (lon == 180) {
            return 60;
        }

        // Special zone for Norway
        if (lat >= 56.0f && lat < 64.0f && lon >= 3.0f && lon < 12.0f) {
            return 32;
        }

        // Special zones for Svalbard
        if (lat >= 72.0f && lat < 84.0f) {
            if (lon >= 0.0f && lon < 9.0f) {
                return 31;
            } else if (lon >= 9.0f && lon < 21.0f) {
                return 33;
            } else if (lon >= 21.0f && lon < 33.0f) {
                return 35;
            } else if (lon >= 33.0f && lon < 42.0f) {
                return 37;
            }
        }

        return (int) ((lon + 180) / 6) + 1;
    }
Find zone number based on the given latitude and longitude in *degrees*.

@param lat in decimal degrees
@param lon in decimal degrees
@return zone number for UTM zone for lat, lon
main/src/main/java/cgeo/geocaching/location/UTMPoint.java