Dipendenti in ferie in un giorno

This commit is contained in:
La Programmatrice Verde
2026-03-20 18:28:43 +01:00
parent 450ab044c9
commit 6dddc5aeb6
2 changed files with 32 additions and 6 deletions

View File

@@ -6,7 +6,7 @@ public class Dipendente {
private String cognome; private String cognome;
private int giorniFerieResidui = GIORNI_FERIE_TOTALI; private int giorniFerieResidui = GIORNI_FERIE_TOTALI;
public static final int GIORNI_FERIE_TOTALI = 35; public static final int GIORNI_FERIE_TOTALI = 35;
public Dipendente(String codiceFiscale, String nome, String cognome) { public Dipendente(String codiceFiscale, String nome, String cognome) {
this.codiceFiscale = codiceFiscale; this.codiceFiscale = codiceFiscale;
this.nome = nome; this.nome = nome;
@@ -31,5 +31,10 @@ public class Dipendente {
public int getGiorniFerieResidui() { public int getGiorniFerieResidui() {
return giorniFerieResidui; return giorniFerieResidui;
} }
@Override
public String toString() {
return "Nome: " + nome + "\nCognome: " + cognome + "\nCodice fiscale: " + codiceFiscale;
}
} }

View File

@@ -11,7 +11,6 @@ import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.InputMismatchException; import java.util.InputMismatchException;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -69,11 +68,13 @@ public class GestioneFerie {
pausa(); pausa();
break; break;
case 4: case 4:
System.out.println("Giorni di ferie residui: " + getDipendente(dipendenti).getGiorniFerieResidui()); System.out.println(
"Giorni di ferie residui: " + getDipendente(dipendenti).getGiorniFerieResidui());
pausa(); pausa();
break; break;
case 5: case 5:
mostraDipendentiInFerie(
data("per cui visualizzare i dipendenti in ferie"), dipendenti, richieste);
pausa(); pausa();
break; break;
default: default:
@@ -193,7 +194,8 @@ public class GestioneFerie {
giorniDiFerie = (int) (fine.getTimeInMillis() / (24 * 60 * 60 * 1000) giorniDiFerie = (int) (fine.getTimeInMillis() / (24 * 60 * 60 * 1000)
- inizio.getTimeInMillis() / (24 * 60 * 60 * 1000)); - inizio.getTimeInMillis() / (24 * 60 * 60 * 1000));
if (getDipendente(codiceFiscale, dipendenti).getGiorniFerieResidui() - giorniDiFerie < 0) { 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(); pausa();
error = true; error = true;
} else { } else {
@@ -380,4 +382,23 @@ public class GestioneFerie {
} }
} while (scelta != 1 && scelta != 2 && scelta != 3); } while (scelta != 1 && scelta != 2 && scelta != 3);
} }
private static void mostraDipendentiInFerie(Date data, ArrayList<Dipendente> dipendenti,
ArrayList<Richiesta_Ferie> 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.");
}
}
} }