package tutorialJava.examenesEntrenamiento.examen20230902;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class Ejercicio05_Fechas {

	public static void main(String[] args) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss");
		Date date;
		
		try {
			// Leo una fecha a partir de un String
			date = sdf.parse("2023-02-09 10.30.27");
			
			// Obtengo la misma fecha menos dos semanas, a través de Calendar
			Calendar cal = Calendar.getInstance();
			cal.setTime(date);
			cal.add(Calendar.WEEK_OF_YEAR, -2);
			
			Date dateMenosDosSemanas = new Date(cal.getTimeInMillis());
			
			// Vamos a crear la misma fecha con Calendar, mediante 'set'
			Calendar cal2 = Calendar.getInstance();
			cal2.set(Calendar.YEAR, 2023);
			cal2.set(Calendar.MONTH, Calendar.JANUARY);
			cal2.set(Calendar.DAY_OF_YEAR, 26);
			cal2.set(Calendar.HOUR, 10);
			cal2.set(Calendar.MINUTE, 30);
			cal2.set(Calendar.SECOND, 27);

			// Diferencia horaria entre Galapagos y Lisboa
			Calendar ahoraEnGalapagos = 
					Calendar.getInstance(TimeZone.getTimeZone("Pacific/Galapagos"));
			Calendar ahoraEnLisboa = 
					Calendar.getInstance(TimeZone.getTimeZone("Europe/Lisbon"));
			
			int horaEnGalapagos = ahoraEnGalapagos.get(Calendar.HOUR_OF_DAY);
			int horaEnLisboa = ahoraEnLisboa.get(Calendar.HOUR_OF_DAY);
			
			System.out.println("Diferencia horaria entre Galapagos y Lisboa: " + 
					Math.abs(horaEnGalapagos - horaEnLisboa));

			
			
			System.out.println();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}






