From 6dddc5aeb6a7c9b5f9c8689744927e393ba7734a Mon Sep 17 00:00:00 2001 From: La Programmatrice Verde Date: Fri, 20 Mar 2026 18:28:43 +0100 Subject: [PATCH] Dipendenti in ferie in un giorno --- src/gestioneferie/Dipendente.java | 9 +++++++-- src/gestioneferie/GestioneFerie.java | 29 ++++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/gestioneferie/Dipendente.java b/src/gestioneferie/Dipendente.java index a9ab115..c73457b 100644 --- a/src/gestioneferie/Dipendente.java +++ b/src/gestioneferie/Dipendente.java @@ -6,7 +6,7 @@ public class Dipendente { private String cognome; private int giorniFerieResidui = GIORNI_FERIE_TOTALI; public static final int GIORNI_FERIE_TOTALI = 35; - + public Dipendente(String codiceFiscale, String nome, String cognome) { this.codiceFiscale = codiceFiscale; this.nome = nome; @@ -31,5 +31,10 @@ public class Dipendente { public int getGiorniFerieResidui() { return giorniFerieResidui; - } + } + + @Override + public String toString() { + return "Nome: " + nome + "\nCognome: " + cognome + "\nCodice fiscale: " + codiceFiscale; + } } diff --git a/src/gestioneferie/GestioneFerie.java b/src/gestioneferie/GestioneFerie.java index f218e8a..b1150e1 100644 --- a/src/gestioneferie/GestioneFerie.java +++ b/src/gestioneferie/GestioneFerie.java @@ -11,7 +11,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.InputMismatchException; import java.util.LinkedList; -import java.util.List; import java.util.Scanner; import java.util.regex.Pattern; @@ -69,11 +68,13 @@ public class GestioneFerie { pausa(); break; case 4: - System.out.println("Giorni di ferie residui: " + getDipendente(dipendenti).getGiorniFerieResidui()); + System.out.println( + "Giorni di ferie residui: " + getDipendente(dipendenti).getGiorniFerieResidui()); pausa(); break; case 5: - + mostraDipendentiInFerie( + data("per cui visualizzare i dipendenti in ferie"), dipendenti, richieste); pausa(); break; default: @@ -193,7 +194,8 @@ public class GestioneFerie { giorniDiFerie = (int) (fine.getTimeInMillis() / (24 * 60 * 60 * 1000) - inizio.getTimeInMillis() / (24 * 60 * 60 * 1000)); if (getDipendente(codiceFiscale, dipendenti).getGiorniFerieResidui() - giorniDiFerie < 0) { - System.out.println("Il periodo di ferie supera la durata di feire massima per dipendente di " + Dipendente.GIORNI_FERIE_TOTALI + "."); + System.out.println("Il periodo di ferie supera la durata di feire massima per dipendente di " + + Dipendente.GIORNI_FERIE_TOTALI + "."); pausa(); error = true; } else { @@ -380,4 +382,23 @@ public class GestioneFerie { } } while (scelta != 1 && scelta != 2 && scelta != 3); } + + private static void mostraDipendentiInFerie(Date data, ArrayList dipendenti, + ArrayList richieste) { + SimpleDateFormat sdf = new SimpleDateFormat(FORMATO_DATA); + System.out.println("Dipendeti in ferie in data " + sdf.format(data) + ": "); + boolean dipendentiInFerieInData = false; + + for (Richiesta_Ferie richiesta : richieste) { + if (richiesta.getStato().equals(statiApprovazione.APPROVATA) && richiesta.getInizio().before(data) + && richiesta.getFine().after(data)) { + dipendentiInFerieInData = true; + System.out.println(getDipendente(richiesta.getCodiceFiscale(), dipendenti)); + } + } + + if (!dipendentiInFerieInData) { + System.out.println("Nessuno."); + } + } }