package com.trifulcas.fechas;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.Arrays;
public class EjerciciosFechas {
public static void main(String[] args) {
// TODO Auto-generated method stub
LocalDate cumple = LocalDate.of(2024, 8, 13);
System.out.println(cumple.format(DateTimeFormatter.ofPattern("MM/d/yyyy")));
System.out.println(cuantoFalta(cumple));
System.out.println(Arrays.toString(primerosDeMes(2025)));
System.out.println(esFinDeSemanaAnglo("06/01/2024"));
System.out.println(esFinDeSemanaEsp("04/06/2024"));
}
// Crear una función cuantoFalta(fecha) a la que le pasamos una fecha
// y nos devuelve cuantos días faltan hasta esa fecha
static long cuantoFalta(LocalDate fecha) {
return ChronoUnit.DAYS.between(LocalDate.now(), fecha);
}
// Crear una función primerosDeMes(anyo) que nos devuelva una array con las
// fechas
// de los primeros de mes de ese año (1 de enero, 1 de febrero, 1 de marzo...)
// Devuelvo un array de fechas, le paso un int con el año
static LocalDate[] primerosDeMes(int anyo) {
// La sintaxis de un array es tipo nombre_variable= new tipo[tamaño]
LocalDate[] fechas = new LocalDate[12]; // ¿Por qué 12? Porque son 12 meses
// ¿Cómo creo yo un array con los primeros de mes?
// (0) 1-1-2024, (1) 1-2-2024, (2) 1-3-2024...
for (int i = 1; i <= 12; i++) {
fechas[i - 1] = LocalDate.of(anyo, i, 1);
}
return fechas;
}
// Crear una función a la que le pasamos una cadena con una fecha en formato
// "año-mes-dia" y nos devuelve true si es fin de semana y false en caso
// contrario
// esFinDeSemana(cadena)
static boolean esFinDeSemanaEsp(String cadena) {
// Convertir la cadena a fecha
LocalDate fechaConvertida = LocalDate.parse(cadena, DateTimeFormatter.ofPattern("dd/MM/yyyy"));
// Saber el día de la semana
int diaSemana = fechaConvertida.getDayOfWeek().ordinal();
// Si es sábado o domingo devolver true y si no false
return diaSemana >= 5;
}
static boolean esFinDeSemanaAnglo(String cadena) {
// Convertir la cadena a fecha
LocalDate fechaConvertida = LocalDate.parse(cadena, DateTimeFormatter.ofPattern("MM/dd/yyyy"));
// Saber el día de la semana
int diaSemana = fechaConvertida.getDayOfWeek().ordinal();
// Si es sábado o domingo devolver true y si no false
return diaSemana >= 5;
}
}