El método between() de la interfaz de ChronoPeriod en Java se utiliza para obtener un ChronoPeriod que consiste en el número de años, meses y días entre dos fechas dadas (incluida la fecha de inicio y excluyendo la fecha de finalización).
Este cronoPeríodo se obtiene de la siguiente manera:
- Eliminar meses completos.
- Ahora, calcule el número restante de días.
- Luego, ajuste para asegurarse de que ambos tengan el mismo signo.
- Ahora, divida la cantidad de meses en años y meses según un año de 12 meses.
- Considere un mes, si el día de finalización del mes es mayor o igual que el día de inicio del mes (Ej.: de 2017-05-12 a 2018-07-18 es un año, dos meses y seis días ).
Nota: ChronoPeriod obtenido de la fórmula anterior puede ser negativo , si el final es antes del inicio. El signo negativo será el mismo en cada año, mes y día.
Sintaxis:
static ChronoPeriod between(ChronoLocalDate startDateInclusive, ChronoLocalDate endDateExclusive)
Parámetros:
- startDateInclusive : la fecha de inicio es inclusiva y no debe ser nula.
- endDateExclusive : la fecha de finalización es exclusiva y no debe ser nula.
Valor de retorno: La función between() de chronoPeriod devuelve el cronoPeriod entre la fecha de inicio y finalización dada.
A continuación se muestra la implementación de la función anterior:
// Java code to show the chronoPeriod // between the given start and end date import java.time.*; import java.time.chrono.*; public class ChronoPeriodClass { // Function to calculate chronoPeriod between // start and end date static void calculateChronoPeriod(ChronoLocalDate startDate, ChronoLocalDate endDate) { ChronoPeriod chronoPeriod = ChronoPeriod.between(startDate, endDate); System.out.println("ChronoPeriod between start and end " + "date is : " + chronoPeriod); } // Driver Code public static void main(String[] args) { // Start date ChronoLocalDate startDate = LocalDate.parse("2017-02-13"); // End date ChronoLocalDate endDate = LocalDate.parse("2018-08-20"); calculateChronoPeriod(startDate, endDate); } }
Producción:
ChronoPeriod between start and end date is : P1Y6M7D