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