Files
Calendario/src/calendario/Calendario.java
La Programmatrice Verde 400bf97827 Fine
2025-12-16 09:05:51 +01:00

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);
}
}