Date
è stata la classe suggerita da Java per la gestione delle date fino alla versione 1.1 di JDK. L'uso di Date
è adesso deprecato, vietato. La stessa classe è stata finora tenuta nelle versioni successive di JDK solo per problemi di compatibilità verso quei programmi ormai già scritti. Adesso Java suggerisce di usare la classe Calendar
, una classe astratta, oppure la classe GregorianCalendar
. Quest'ultima estende proprio la classe Calendar
, assai più generica, realizzando di fatto la classe ormai più usata per la rappresentazione delle date.Invocando il costruttore della classe
GregorianCalendar
, senza parametri, si genera una data che rappresenta l'istante di tempo corrente. E' poi possibile specificare, attraverso un secondo costruttore, i valori che dovranno caratterizzare la data. Entrambi i costruttori sono usati nell'esempio che a breve segue.La classe
GregorianCalendar
implementa diversi metodi per la gestione delle date, eccone alcuni:boolean equals(Object another)
: confronta l'oggetto (implicito) con l'oggetto another e ritorna true se entrambi si riferiscono allo stesso istante temporale, altrimenti false;boolean before(Object another)
: confronta l'oggetto (implicito) con l'oggetto another e ritorna true se il primo precede l'altro, altrimenti false;boolean after(Object another)
: confronta l'oggetto (implicito) con l'oggetto another e ritorna true se il primo viene dopo l'altro, altrimenti false;int get(int field)
: ritorna un particolare valore del campo data. L'intero usato per specificare il campo può essere, ad esempio, uno delle seguenti costanti:Calendar.YEAR
,Calendar.MONTH
eCalendar.DATE
. Per altri valori consultare la documentazione in linea di Java;void set(int field, int value)
: imposta il campo al valore indicato;void add(int field, int step)
: aggiunge al campo la quantità indicata;
/* Testing di alcuni metodi della classe GregorianCalendar */
import javax.swing.*;
import java.util.*;
public class DateTest {
public static void main(String args[]) {
GregorianCalendar now=new GregorianCalendar();
int year=now.get(Calendar.YEAR);
int month=now.get(Calendar.MONTH)+1;
int day=now.get(Calendar.DATE);
String input=JOptionPane.showInputDialog("Giorno: ");
int birthdayDay=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Mese: ");
int birthdayMonth=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Anno: ");
int birthdayYear=Integer.parseInt(input);
GregorianCalendar birthday=new GregorianCalendar(birthdayYear,birthdayMonth-1,birthdayDay);
int temp=0;
while (!birthday.after(now)) {
birthday.add(Calendar.DATE,1);
temp++;
}
System.out.println("Oggi:\t\t"+day+"/"+month+"/"+year);
System.out.println("Compleanno:\t"+birthdayDay+"/"+birthdayMonth+"/"+birthdayYear);
System.out.println("Anni:\t\t"+temp/365);
}
}
Nessun commento:
Posta un commento