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; package gestioneferie;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.InputMismatchException; import java.util.InputMismatchException;
import java.util.Scanner; import java.util.Scanner;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@@ -21,6 +25,7 @@ public class GestioneFerie {
static Scanner sc = new Scanner(System.in); static Scanner sc = new Scanner(System.in);
static final String ERRORE_GENERICO = "Errore: opzione non valida."; static final String ERRORE_GENERICO = "Errore: opzione non valida.";
static final String FORMATO_DATA = "dd/MM/yyyy";
public static void main(String[] args) { public static void main(String[] args) {
int scelta = -1; int scelta = -1;
@@ -50,7 +55,9 @@ public class GestioneFerie {
pausa(); pausa();
break; break;
case 2: case 2:
richiediFerie(richieste);
System.out.println("Richiesta di ferie aggiunta con successo.");
System.out.println("La richiesta è attualmente in attesa di approvazione.");
pausa(); pausa();
break; break;
case 3: case 3:
@@ -98,14 +105,14 @@ public class GestioneFerie {
dipendenti.add(new Dipendente(codiceFiscale, nome, cognome)); dipendenti.add(new Dipendente(codiceFiscale, nome, cognome));
} }
public static String codiceFiscale() { private static String codiceFiscale() {
String codiceFiscale; String codiceFiscale;
Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]"); Pattern pattern = Pattern.compile("[A-Z]{6}[ABCDEHLMPRST]{3}\\d{2}[A-Z]\\d{3}[A-Z]");
boolean error; boolean error;
do { do {
error = false; error = false;
System.out.print("Inserire il codice fiscale: "); System.out.print("Inserire il codice fiscale del dipendente: ");
codiceFiscale = sc.nextLine(); codiceFiscale = sc.nextLine();
if (pattern.matcher(codiceFiscale).find()) { if (pattern.matcher(codiceFiscale).find()) {
@@ -117,4 +124,36 @@ public class GestioneFerie {
return codiceFiscale; 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;
}
} }