114 lines
3.6 KiB
Java
114 lines
3.6 KiB
Java
/*
|
|
* 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);
|
|
}
|
|
}
|