package tutorialJava.examenes.examen20250131_2;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class EjercicoC_Fechas {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		Date fechaInicial, fechaFinal;
		Date ahora = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
		
		try {
			// Pido fechas hasta cumplir las condiciones
			do {
				System.out.println("Introduzca fecha inicial: ");
				fechaInicial = sdf.parse(sc.nextLine());
				System.out.println("Introduzca fecha final: ");
				fechaFinal = sdf.parse(sc.nextLine());
				
				if (fechaInicial.before(ahora) || fechaFinal.before(fechaInicial)) {
					System.out.println("Error, la fecha inicial debe ser posterior"
							+ " al momento actual y la fecha final debe ser"
							+ " posterior a la fecha inicial");
				}
			} while (fechaInicial.before(ahora) || fechaFinal.before(fechaInicial));
		
			// Calcular la diferencia en días de las fechas inicial y final
			long millisEntreFechas = fechaFinal.getTime() - fechaInicial.getTime();
			int diasEntreFechas = (int) (millisEntreFechas / 1000 / 60 / 60 / 24);
			System.out.println("Días entre fechas calculado con Date: " + diasEntreFechas);

			// Calculo lo mismo con Calendar
			Calendar calFechaInicial = Calendar.getInstance();
			calFechaInicial.setTime(fechaInicial);
			Calendar calFechaFinal = Calendar.getInstance();
			calFechaFinal.setTime(fechaFinal);
			int diasEntreCalendars = calFechaFinal.get(Calendar.DAY_OF_YEAR) -
					calFechaInicial.get(Calendar.DAY_OF_YEAR);
			System.out.println("Días entre calendars: " + diasEntreCalendars);
			
		}
		catch (Exception ex) {
			ex.printStackTrace();
		}

	}

}






