Recuperation de la date precedente une autre

Résolu/Fermé
Lemaestro77 Messages postés 15 Date d'inscription mercredi 14 février 2018 Statut Membre Dernière intervention 20 mai 2019 - 15 mars 2018 à 11:39
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 mars 2018 à 19:18
Bonjour,

Je suis en train de programmer en java et je recherche une fonction qui va me renvoyer la date precedente dd/MM/yyyy d'une date choisi dans jDateChooser. Merci d'avance

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié le 15 mars 2018 à 12:56
Bonjour,

Quand tu parles de "la date precedente" tu veux dire la veille (J-1) ou autre chose ?

LocalDate today = LocalDate.now();
System.out.println(today); // 2018-03-15

LocalDate yesterday = today.minusDays(1);
System.out.println(yesterday); // 2018-03-14

1
Lemaestro77 Messages postés 15 Date d'inscription mercredi 14 février 2018 Statut Membre Dernière intervention 20 mai 2019
15 mars 2018 à 14:43
Salut. Oui quand je parle de la date précédente c'est la date de la veille. Donc je sélectionne 01/03/2012 et ça ne renvoie 29/02/2012 par exemple
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019 > Lemaestro77 Messages postés 15 Date d'inscription mercredi 14 février 2018 Statut Membre Dernière intervention 20 mai 2019
15 mars 2018 à 15:36
Donc le code que je t'ai donné devrait suffire.

System.out.println(LocalDate.of(2012, 3, 1).minusDays(1)); // 2012-02-29
0
Lemaestro77 Messages postés 15 Date d'inscription mercredi 14 février 2018 Statut Membre Dernière intervention 20 mai 2019
15 mars 2018 à 18:19
Oui oui. Mais c'est si j entre les dates manuellement. Maintenant la date viens d un jdatechooser sous le format dd-MM-yyyy, comment le faire respecter le format accepté par la fonction là?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019 > Lemaestro77 Messages postés 15 Date d'inscription mercredi 14 février 2018 Statut Membre Dernière intervention 20 mai 2019
15 mars 2018 à 19:18
Avec LocalDate.of(year, month, day) tu as juste à mettre tes paramètres dd, MM et yyyy dans le bon ordre comme je l'ai fait pour
LocalDate.of(2012, 3, 1)
et c'est tout...

Remarques :
 
  • JDateChooser n'est pas un composant standard de Java, c'est un plugin spécifique de NetBeans qui nécessite une dépendance pour faire fonctionner le programme.
  • Swing n'est plus mis à jour depuis Java 8, désormais c'est JavaFX la technologie officielle pour les applications de bureau.
  • En utilisant la classe DatePicker, qui elle est bien standard Java, tu manipulerais directement les objets LocalDate, sans avoir à faire tes conversions de format.

Exemple :

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.DatePicker;
import javafx.stage.Stage;

public class DatePickerApplication extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage stage) {
        DatePicker datePicker = new DatePicker();
        datePicker.setOnAction(e -> System.out.println(datePicker.getValue().minusDays(1)));
        stage.setScene(new Scene(datePicker, 150, 25));
        stage.show();
    }
}
0