diff --git a/src/calendario/Calendario.java b/src/calendario/Calendario.java index 5b98b35..55ba60b 100644 --- a/src/calendario/Calendario.java +++ b/src/calendario/Calendario.java @@ -6,6 +6,7 @@ package calendario; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.Date; import java.util.InputMismatchException; import java.util.Scanner; @@ -21,7 +22,7 @@ public class Calendario { */ static Scanner sc = new Scanner(System.in); - static final String FORMATO_DATA_PRODUZIONE = "gg/MM/AAAA HH/mm/ss"; + static final String FORMATO_DATA_PRODUZIONE = "dd/MM/yyyy HH:mm:ss"; public static void main(String[] args) { int scelta = -1; @@ -41,11 +42,11 @@ public class Calendario { case 0: break; case 1: - + System.out.println(calcolaDataScadenzaGet(data())); pausa(); break; case 2: - + System.out.println(calcolaDataScadenzaAdd(data())); pausa(); break; default: @@ -66,15 +67,15 @@ public class Calendario { sc.nextLine(); } - public Date data() { + static Date data() { boolean error; Date data = null; SimpleDateFormat sdf = new SimpleDateFormat(FORMATO_DATA_PRODUZIONE); do { error = false; - System.out.print("Inserire la data di produzione nel formato " + FORMATO_DATA_PRODUZIONE + ":"); - try{ + System.out.print("Inserire la data di produzione nel formato " + FORMATO_DATA_PRODUZIONE + ": "); + try { data = sdf.parse(sc.nextLine()); } catch (ParseException _) { System.out.println("Errore: data non valida."); @@ -85,4 +86,28 @@ public class Calendario { return data; } + + static String calcolaDataScadenzaGet(Date data) { + Calendar c = Calendar.getInstance(); + c.setTime(data); + + c.set(Calendar.YEAR, c.get(Calendar.YEAR) + 1); + c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 3); + c.set(Calendar.DAY_OF_MONTH, c.get(Calendar.DAY_OF_MONTH) + 10); + + return "La data di scadenza è il " + c.get(Calendar.YEAR) + "/" + c.get(Calendar.MONTH) + "/" + + c.get(Calendar.DAY_OF_MONTH) + "\nLa settimana dell'anno in cui scadrà è la numero " + c.get(Calendar.WEEK_OF_YEAR); + } + + static String calcolaDataScadenzaAdd(Date data) { + Calendar c = Calendar.getInstance(); + c.setTime(data); + + c.add(Calendar.YEAR, 1); + c.add(Calendar.MONTH, 3); + c.add(Calendar.DAY_OF_MONTH, 10); + + return "La data di scadenza è il " + c.get(Calendar.YEAR) + "/" + c.get(Calendar.MONTH) + "/" + + c.get(Calendar.DAY_OF_MONTH) + "\nLa settimana dell'anno in cui scadrà è la numero " + c.get(Calendar.WEEK_OF_YEAR); + } }