richiediFerie

This commit is contained in:
La Programmatrice Verde
2026-03-19 21:50:34 +01:00
parent 2bab2fc663
commit 6dd7b1e56a

View File

@@ -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<Richiesta_Ferie> 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;
}
}