Comment obtenir les années, les mois et les jours d'une période en Java

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce tutoriel de programmation Java vous guidera dans le processus de calcul des années, des mois et des jours d'une période de temps à l'aide de Java. Que vous soyez un débutant ou un développeur Java expérimenté, vous allez apprendre des techniques pratiques pour gérer les opérations de date et d'heure dans vos applications Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java/BasicSyntaxGroup -.-> java/math("Math") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/date("Date") java/SystemandDataProcessingGroup -.-> java/system_methods("System Methods") subgraph Lab Skills java/math -.-> lab-414039{{"Comment obtenir les années, les mois et les jours d'une période en Java"}} java/date -.-> lab-414039{{"Comment obtenir les années, les mois et les jours d'une période en Java"}} java/system_methods -.-> lab-414039{{"Comment obtenir les années, les mois et les jours d'une période en Java"}} end

Comprendre la date et l'heure en Java

Java fournit un ensemble complet de classes et d'utilitaires pour travailler avec des dates, des heures et des périodes de temps. Les principales classes utilisées pour la gestion de la date et de l'heure en Java sont les suivantes :

Classes de date et d'heure

  • java.time.LocalDate : Représente une date (année, mois, jour) sans information sur l'heure de la journée et la zone horaire.
  • java.time.LocalTime : Représente une heure de la journée sans information sur la date et la zone horaire.
  • java.time.LocalDateTime : Représente une date et une heure sans information sur la zone horaire.
  • java.time.ZonedDateTime : Représente une date et une heure avec une zone horaire.
  • java.time.Duration : Représente une quantité de temps basée sur le temps, telle que "34,5 secondes".
  • java.time.Period : Représente une quantité de temps basée sur la date en années, mois et jours.

Ces classes offrent un ensemble riche de méthodes pour créer, manipuler et formater des valeurs de date et d'heure.

Formatage de la date et de l'heure

Java fournit également la classe java.time.format.DateTimeFormatter pour formater et analyser des valeurs de date et d'heure. Cette classe prend en charge une large plage de modèles de date et d'heure, vous permettant de personnaliser l'affichage des informations de date et d'heure.

LocalDate date = LocalDate.of(2023, 4, 15);
String formattedDate = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(formattedDate); // Sortie : 2023-04-15

Fuseaux horaires et heure d'été

Les classes de date et d'heure de Java prennent également en charge les fuseaux horaires et l'heure d'été (H.E.) grâce aux classes java.time.ZoneId et java.time.ZonedDateTime. Ces classes vous permettent de travailler avec des dates et des heures dans des fuseaux horaires spécifiques et de gérer les complexités de l'H.E.

ZonedDateTime zonedDateTime = ZonedDateTime.of(2023, 4, 15, 12, 0, 0, 0, ZoneId.of("America/New_York"));
System.out.println(zonedDateTime); // Sortie : 2023-04-15T12:00:00-04:00[America/New_York]

Comprendre ces classes de date et d'heure principales et leur utilisation est essentielle pour travailler avec des dates et des heures dans les applications Java.

Calculer des périodes de temps

Java fournit la classe java.time.Period pour représenter une quantité de temps basée sur la date, telle que "3 ans, 6 mois et 10 jours". Cette classe est utile pour calculer la différence entre deux dates ou pour ajouter une quantité spécifique de temps à une date.

Calculer la différence entre deux dates

Vous pouvez utiliser la classe Period pour calculer la différence entre deux objets LocalDate :

LocalDate startDate = LocalDate.of(2023, 1, 1);
LocalDate endDate = LocalDate.of(2023, 6, 30);
Period period = Period.between(startDate, endDate);

System.out.println(period.getYears() + " ans, " + period.getMonths() + " mois, " + period.getDays() + " jours");
// Sortie : 0 ans, 5 mois, 29 jours

Ajouter une période de temps à une date

Vous pouvez également utiliser la classe Period pour ajouter une quantité spécifique de temps à un LocalDate :

LocalDate date = LocalDate.of(2023, 4, 15);
Period period = Period.of(1, 3, 10);
LocalDate newDate = date.plus(period);

System.out.println(newDate); // Sortie : 2024-07-25

Dans cet exemple, nous créons un objet Period représentant 1 an, 3 mois et 10 jours, puis nous l'ajoutons à la date d'origine.

##Comparer des périodes de temps

La classe Period fournit également des méthodes pour comparer des périodes de temps, telles que isNegative(), isZero() et minus() :

Period period1 = Period.of(1, 6, 0);
Period period2 = Period.of(2, 0, 0);

System.out.println(period1.isNegative()); // false
System.out.println(period2.minus(period1)); // 0 ans, -6 mois, 0 jours

Comprendre comment travailler avec la classe Period est essentiel pour calculer et manipuler des périodes de temps dans vos applications Java.

Exemples pratiques et applications

Maintenant que vous comprenez les bases du travail avec les dates, les heures et les périodes de temps en Java, explorons quelques exemples pratiques et applications.

Calcul de la durée d'emploi des employés

Supposons que vous ayez une application qui suit les informations des employés, y compris leur date d'embauche. Vous pouvez utiliser la classe Period pour calculer la durée d'emploi d'un employé dans l'entreprise :

LocalDate hireDate = LocalDate.of(2018, 3, 15);
LocalDate currentDate = LocalDate.now();
Period tenure = Period.between(hireDate, currentDate);

System.out.println("Durée d'emploi de l'employé : " + tenure.getYears() + " ans, " + tenure.getMonths() + " mois, " + tenure.getDays() + " jours");

Ce code calcule la différence entre la date d'embauche de l'employé et la date actuelle, puis imprime la durée d'emploi résultante.

Planification d'événements récurrents

Un autre cas d'utilisation courant des périodes de temps en Java est la planification d'événements récurrents, tels que des réunions mensuelles ou annuelles. Vous pouvez utiliser la classe Period pour ajouter une période de temps spécifique à une date pour calculer la prochaine occurrence de l'événement :

LocalDate nextMeeting = LocalDate.of(2023, 4, 15);
Period meetingPeriod = Period.ofMonths(1);

while (nextMeeting.isBefore(LocalDate.of(2024, 1, 1))) {
    System.out.println("Prochaine réunion : " + nextMeeting);
    nextMeeting = nextMeeting.plus(meetingPeriod);
}

Ce code programme des réunions mensuelles à partir du 15 avril 2023 et imprime les dates des réunions jusqu'à la fin de l'année.

Calcul des échéanciers de remboursement de prêts

Vous pouvez également utiliser la classe Period pour calculer les échéanciers de remboursement de prêts. Par exemple, si vous avez un prêt à échéance de 5 ans avec un échéancier de remboursement mensuel, vous pouvez utiliser le code suivant pour calculer l'échéancier de remboursement :

LocalDate loanStartDate = LocalDate.of(2023, 4, 1);
int loanTermInYears = 5;
int loanTermInMonths = loanTermInYears * 12;
Period monthlyRepaymentPeriod = Period.ofMonths(1);

for (int i = 0; i < loanTermInMonths; i++) {
    LocalDate repaymentDate = loanStartDate.plus(Period.ofMonths(i));
    System.out.println("Remboursement dû le : " + repaymentDate);
}

Ce code calcule l'échéancier de remboursement d'un prêt de 5 ans avec des remboursements mensuels, à partir du 1er avril 2023.

Ce ne sont que quelques exemples de la manière dont vous pouvez utiliser les capacités de gestion de la date et de l'heure en Java pour résoudre des problèmes pratiques. En comprenant la classe Period et ses classes associées, vous pouvez construire des applications plus robustes et riches en fonctionnalités.

Sommaire

À la fin de ce tutoriel Java, vous aurez une compréhension solide de la manière de travailler avec la date et l'heure en Java, et de calculer les années, les mois et les jours d'une période de temps donnée. Ces compétences seront précieuses pour construire des applications Java robustes et efficaces qui traitent des fonctionnalités liées à la date et à l'heure.