public static int retornaQuantidadeDiasIntercessaoEntrePeriodos(
			Date dataInicioA, Date dataTerminoA, Date dataInicioB, Date dataTerminoB) throws Exception {

		long qtd = 0;

		if (dataInicioA == null || dataTerminoA == null || dataInicioB == null || dataTerminoB == null) {
			throw new Exception("retornaQuantidadeDiasIntercessaoEntrePeriodos() : todas as datas parametro devem ser informadas.");
		}

		Date dataInicioIntercessao = null;
		Date dataTerminoIntercessao = null;

		if (dataInicioA.compareTo(dataInicioB) > 0) {
			dataInicioIntercessao = dataInicioA;
		} else {
			dataInicioIntercessao = dataInicioB;
		}

		if (dataTerminoA.compareTo(dataTerminoB) < 0) {
			dataTerminoIntercessao = dataTerminoA;
		} else {
			dataTerminoIntercessao = dataTerminoB;
		}

		qtd = retornaDiferencaDiasEmCalculoIntegro(dataInicioIntercessao, dataTerminoIntercessao);

		if (qtd < 0 ||dataTerminoIntercessao.before(dataInicioIntercessao) ) {
			qtd = 0;
		}

		return (int) qtd;
	}