/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template */ 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; /** * * @author Verde */ public class Calendario { /** * @param args the command line arguments */ static Scanner sc = new Scanner(System.in); static final String FORMATO_DATA_PRODUZIONE = "dd/MM/yyyy HH:mm:ss"; public static void main(String[] args) { int scelta = -1; do { System.out.println("Scegliere un'opzione:"); System.out.println("1. Calcola data di scadenza (get)"); System.out.println("2. Calcola data di scadenza (add)"); System.out.println("0. Esci"); System.out.print("Opzione: "); try { scelta = sc.nextInt(); sc.nextLine(); switch (scelta) { case 0: break; case 1: System.out.println(calcolaDataScadenzaGet(data())); pausa(); break; case 2: System.out.println(calcolaDataScadenzaAdd(data())); pausa(); break; default: System.out.println("Opzione non valida."); pausa(); break; } } catch (InputMismatchException _) { System.out.println("Errore: scelta non valida."); pausa(); } } while (scelta != 0); } public static void pausa() { System.out.println("Premere un tasto per continuare. . ."); sc.nextLine(); } 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 { data = sdf.parse(sc.nextLine()); } catch (ParseException _) { System.out.println("Errore: data non valida."); pausa(); error = true; } } while (error); 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); } }