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;
}
Interessante, value por compartilhar!
ResponderExcluirVlw
Excluir