richiediFerie
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user