
« Salut, Amigo. Je voudrais te parler d'un type intéressant appelé Date. Ce type stocke la date et l'heure, et peut également mesurer des intervalles de temps. »
« Ça m'a l'air intéressant. Continue, s'il te plaît. »
« Tout objet Date stocke une date sous une forme plutôt intéressante : le nombre de millisecondes écoulées depuis le 1er janvier 1970, GMT. »
« Ouah ! »
« Ouais. Ce nombre est si grand qu'il n'y a pas assez de place pour lui dans un int, et on doit donc le stocker dans un long. Mais c'est très pratique pour calculer la différence entre deux dates. Il te suffit de faire la soustraction pour trouver la différence avec une précision de l'ordre de la milliseconde. Cela résout également le problème des fuseaux horaires et de l'heure d'été. »
« La partie la plus intéressante est que chaque objet est initialisé avec l'heure actuelle à sa création. Pour connaître l'heure actuelle, il te suffit de créer un objet Date. »
« Et comment on l'utilise ? »
« Voici quelques exemples : »
public static void main(String[] args) throws Exception
{
Date aujourdhui = new Date();
System.out.println("Date actuelle : " + aujourdhui);
}
public static void main(String[] args) throws Exception
{
Date heureActuelle = new Date(); // Obtient la date et l'heure actuelles
Thread.sleep(3000); // Attend 3 secondes (3000 millisecondes)
Date nouvelleHeure = new Date(); // Obtient la nouvelle heure actuelle
long retardMs = nouvelleHeure.getTime() - heureActuelle.getTime(); // Calcule la différence
System.out.println("La différence d'heure est de : " + retardMs + " en ms");
}
public static void main(String[] args) throws Exception
{
Date heureDebut = new Date();
long heureFin = heureDebut.getTime() + 5000; // +5 secondes
Date dateFin = new Date(heureFin);
Thread.sleep(3000); // Attend 3 secondes
Date heureActuelle = new Date();
if(heureActuelle.after(dateFin))// Vérifie si heureActuelle est après dateFin
{
System.out.println("Heure de fin !");
}
}
public static void main(String[] args) throws Exception
{
Date heureActuelle = new Date();
int heures = heureActuelle.getHours();
int minutes = heureActuelle.getMinutes();
int secondes = heureActuelle.getSeconds();
System.out.println("Temps depuis minuit " + heures + " heures, " + minutes + " minutes, " + secondes + " secondes");
}
public static void main(String[] args) throws Exception
{
Date dateDebutAnnee = new Date();
dateDebutAnnee.setHours(0);
dateDebutAnnee.setMinutes(0);
dateDebutAnnee.setSeconds(0);
dateDebutAnnee.setDate(1); // Premier jour du mois
dateDebutAnnee.setMonth(0); // Janvier (les indices des mois vont de 0 à 11)
Date heureActuelle = new Date();
long differenceTempsMs = heureActuelle.getTime() - dateDebutAnnee.getTime();
long msJour = 24 * 60 * 60 * 1000; // Le nombre de millisecondes dans 24 heures
int nombreJours = (int) (differenceTempsMs/msJour); // Le nombre de jours complets
System.out.println("Jours depuis le début de l'année : " + nombreJours);
}
« La méthode getTime()
renvoie le nombre de millisecondes stocké dans un objet Date. »
« La méthode after()
vérifie si la date sur laquelle nous avons appelé la méthode se situe après la date passée à la méthode. »
« Les méthodes getHours(), getMinutes() et getSeconds()
renvoient respectivement le nombre d'heures, de minutes et de secondes pour l'objet sur lequel elles sont appelées. »
« De plus, dans le dernier exemple, tu peux voir qu'il est possible de modifier la date et l'heure stockées dans un objet Date. Nous obtenons l'heure et la date, puis réinitialisons les heures, les minutes et les secondes à 0. Nous avons également réglé le mois sur janvier et le jour sur le 1er du mois. Ainsi, l'objet dateDebutAnnee
stocke la date du 1er Janvier de l'année actuelle, à minuit. »
« Après cela, nous obtenons à nouveau la date (heureActuelle
), calculons la différence entre les deux dates en millisecondes, et stockons le résultat dans differenceTempsMs
. »
« Ensuite, nous divisons differenceTempsMs
par le nombre de millisecondes dans 24 heures pour obtenir le nombre de jours complets du début de l'année en cours jusqu'à aujourd'hui. »
« Ouah ! C'est trop cool ! »
GO TO FULL VERSION