1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| public class MonApplication {
public static void main(String[] args) {
/** La date du départ */
int anneeLMK = 2015; // évite en général de déclarer plusieurs variables sur la même ligne, ça peut amener de la confusion et des erreurs difficiles à repérer, et c'est aussi plus souple pour les modifications
// int moisLMK = 3; // évite de mettre 0 devant une valeur entière : ceci à une signification en Java. ça signifie que le nombre est en octal : pour un entier inférieur à 8 ça ne change rien, mais si tu avais eu besoin de faire le mois de septembre, 09 n'aurait pas fonctionner
Month moisLMK = Month.MARCH; // c'est encore mieux en utilisant la constante : là, tu es sûr que c'est la bonne valeur (pas besoin de faire -1)
int jourLMK = 27;// 27/03/2015 dernier post
LocalDateTime date1 = LocalDateTime.of(anneeLMK, moisLMK, jourLMK, 15, 11);
LocalDateTime today = LocalDateTime.now();
// Calcul de différence
// dans ce cas la différence est en jour plein
/*Period difference = Period.between(date1.toLocalDate(), today.toLocalDate());
int depuis = difference.getDays();*/
long depuis = java.time.Duration.between(date1, today).toDays();
System.out.println("La différence en nombre de jour entre \n" + date1
+ " \net \n " + today + " \nest : " + depuis + " jours.");
if (depuis > 9) { // on créer la fenêtre que si nécessaire
MaFenetre f = new MaFenetre(depuis);
f.setSize(320, 240); // on dimensionne la fenêtre au besoin (on ne force pas la fenêtre à avoir une taille en mettant ça dans la classe).
f.setLocationRelativeTo(null); // on centre la fenêtre
f.setVisible(true); // préférer un affichage externe, ce qui permet de modifier le comportement de la classe d'origine
}
}
// préférer une classe statique interne privée à une classe privée (qu'on utilise pour des petits tests temporaires éventuellement)
private static class MaFenetre extends JFrame { // si la classe étend JFrame, inutile d'avoir une variable interne
public MaFenetre(long depuis) {
setTitle("pas déposé sur LMK depuis " + depuis + " jours");
setContentPane(buildContentPane(depuis));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // évite d'avoir à écrire soit-même un WindowAdapter qui fait un exit(0)
}
private JPanel buildContentPane(long depuis) { // la méthode n'a pas besoin d'être public : ça ne sert à rien de l'appeler de l'extérieur
JPanel panel = new JPanel();
// panel.setLayout(new FlowLayout()); // inutile :
String text = ("coucou " + depuis);
JLabel label = new JLabel(text);
panel.add(label);
return panel;
}
}
} |
Partager