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

@@ -32,4 +32,9 @@ public class Dipendente {
public int getGiorniFerieResidui() {
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.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<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.");
}
}
}