From 6dd7b1e56a6e56c7ef6a4a89510440bb574dd46c Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Thu, 19 Mar 2026 21:50:34 +0100 Subject: [PATCH] richiediFerie --- src/gestioneferie/GestioneFerie.java | 45 ++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/src/gestioneferie/GestioneFerie.java b/src/gestioneferie/GestioneFerie.java index 44c1d32..3df71d4 100644 --- a/src/gestioneferie/GestioneFerie.java +++ b/src/gestioneferie/GestioneFerie.java @@ -4,7 +4,11 @@ */ package gestioneferie; +import java.util.Date; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.InputMismatchException; import java.util.Scanner; import java.util.regex.Pattern; @@ -21,6 +25,7 @@ public class GestioneFerie { static Scanner sc = new Scanner(System.in); static final String ERRORE_GENERICO = "Errore: opzione non valida."; + static final String FORMATO_DATA = "dd/MM/yyyy"; public static void main(String[] args) { int scelta = -1; @@ -50,7 +55,9 @@ public class GestioneFerie { pausa(); break; case 2: - + richiediFerie(richieste); + System.out.println("Richiesta di ferie aggiunta con successo."); + System.out.println("La richiesta รจ attualmente in attesa di approvazione."); pausa(); break; case 3: @@ -98,14 +105,14 @@ public class GestioneFerie { dipendenti.add(new Dipendente(codiceFiscale, nome, cognome)); } - public static String codiceFiscale() { + private static String codiceFiscale() { String codiceFiscale; Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]"); boolean error; do { error = false; - System.out.print("Inserire il codice fiscale: "); + System.out.print("Inserire il codice fiscale del dipendente: "); codiceFiscale = sc.nextLine(); if (pattern.matcher(codiceFiscale).find()) { @@ -117,4 +124,36 @@ public class GestioneFerie { return codiceFiscale; } + + private static void richiediFerie(ArrayList richieste) { + Calendar inizio = Calendar.getInstance(); + Calendar fine = Calendar.getInstance(); + String codiceFiscale = codiceFiscale(); + + inizio.setTime(data("dell'inizio delle ferie")); + fine.setTime(data("della fine delle ferie")); + + richieste.add(new Richiesta_Ferie(codiceFiscale, inizio, fine)); + } + + private static Date data(String diCheCosa) { + SimpleDateFormat sdf = new SimpleDateFormat(FORMATO_DATA); + boolean error; + Date data = null; + sdf.setLenient(false); + + do { + error = false; + System.out.print("Inserire la data " + diCheCosa + " nel formato " + FORMATO_DATA + ": "); + try { + data = sdf.parse(sc.nextLine()); + } catch (ParseException _) { + System.out.println("Errore: data non valida."); + pausa(); + error = true; + } + } while (error); + + return data; + } }