Método para saber si dos intervalos de fecha se solapan

publicado por: Anonymous

¿Existe alguna manera en Java de que, declarando dos intervalos de tiempo con fechaInicio y fechaFin, compararlos y saber si se solapan o no?

solución

En java, existe una librería para trabajar solo con fechas, se llama Joda

Incluye una clase de Interval que tiene un métodooverlaps(solapan):

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");

DateTime fechaInicio1 = formatter.parseDateTime("02/10/2017");
DateTime fechaFin1 = formatter.parseDateTime("05/10/2017");

DateTime fechaInicio2 = formatter.parseDateTime("03/10/2017");
DateTime fechaFin2 = formatter.parseDateTime("08/10/2017");

Interval intervalo1 = new Interval( fechaInicio1, fechaFin1 );
Interval intervalo2 = new Interval( fechaInicio2, fechaFin2 );

System.out.println( intervalo1.overlaps( intervalo2 ) ); 
// imprime true porque si se sobreponen.

A partir de java 8, Java implementa java.time el cual implementa muchas de las funcionalidades de joda, sin embargo, no soporta Interval.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *