quarta-feira, 17 de julho de 2019

Método que verifica interseção entre períodos

    Neste artigo rápido trago um método que verifica se há interseção entre dois períodos de datas. Todo sistema precisa trabalhar com datas e é muito comum precisarmos desse tipo de validação:


public static boolean isIntersecaoEntrePeriodos(final Date aIni, final Date aFim, final Date bIni,
            final Date bFim)
    {
        if ( (aFim == null && bFim == null)
                || (aFim == null && aIni.compareTo(bIni) <= 0)
                || (aFim == null && bFim != null && aIni.compareTo(bFim) <= 0)
                || (bFim == null && bIni.compareTo(aIni) <= 0)
                || (bFim == null && aFim != null && bIni.compareTo(aFim) <= 0)
                || ((aFim != null && bFim != null) &&
                        ((aIni.compareTo(bIni) <= 0 && aFim.compareTo(bFim) >= 0)
                        || (aIni.compareTo(bIni) <= 0 && aFim.compareTo(bIni) >= 0)
                        || (aIni.compareTo(bIni) >= 0 && aFim.compareTo(bFim) <= 0)
                        || (aIni.compareTo(bFim) <= 0 && aFim.compareTo(bFim) >= 0))) )
        {
            return true;
        }
        return false;
    }

2 comentários: