/** ************************************************** * @author : Geoffrey * @email : mathe.geoffrey@yahoo.fr * @file : Date.java * @date : 18 oct. 2013 * @projet : date * @package : date *************************************************** */ package date; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Scanner; /** * @author Geoffrey */ public class Date { /* * ***************************************************************** * Attributes * ***************************************************************** */ private int jour; private int mois; private int annee; /* * ***************************************************************** * Constructors * ***************************************************************** */ public Date(int jour, int mois, int annee) { this.jour = jour; this.mois = mois; this.annee = annee; } /* * ***************************************************************** * Functions * ***************************************************************** */ // permet la saisie d'une date public void saisir() { Scanner sc = new Scanner(System.in); System.out.println("Donnez un jour:"); this.jour = sc.nextInt(); System.out.println("Donnez un mois:"); this.mois = sc.nextInt(); System.out.println("Donnez l'annee:"); this.annee = sc.nextInt(); } // Affiche une date public void afficher() { if (this.jour > 31 || this.jour < 1 || this.mois > 12 || this.mois < 1 || this.annee < 0) { System.out.println("Date invalide"); } else { System.out.print(this.jour + "/"); System.out.print(this.mois + "/"); System.out.print(this.annee); } } // Calcul de la date de demain public void demain() { switch (this.mois) { case 4: case 6: case 9: case 11: if (this.jour > 30) { System.out.println("Date invalide"); } else { if (this.jour == 30) { this.jour -= this.jour + 1; this.mois = this.mois + 1; } else { this.jour = this.jour + 1; } } break; case 1: case 3: case 5: case 7: case 8: case 10: if (this.jour > 31) { System.out.println("Date invalide"); } else { if (this.jour == 31) { this.jour -= this.jour + 1; this.mois = this.mois + 1; } else { this.jour = this.jour + 1; } } break; case 2: if (this.annee % 4 == 0 && this.annee % 100 != 0 || this.annee % 400 == 0) { if (this.jour == 29) { this.jour -= this.jour - 1; this.mois = this.mois + 1; } else { this.jour = this.jour + 1; } } else { if (this.jour == 28) { this.jour -= this.jour + 1; this.mois = this.mois + 1; } else { this.jour = this.jour + 1; } } break; case 12: if (this.jour == 31) { this.jour -= this.jour - 1; this.mois -= this.mois - 1; this.annee = this.annee + 1; } else { this.jour -= this.jour + 1; } break; } System.out.println("La date de demain est le :" + this.jour + "/" + this.mois + "/" + this.annee); } // Calcul de la date d'hier public void hier() { switch (this.mois) { case 4: case 6: case 9: case 11: if (this.jour > 30) { System.out.println("Date invalide"); } else { if (this.jour == 1) { this.jour = 31; this.mois = this.mois - 1; } else { this.jour = this.jour - 1; } } break; case 1: if (this.jour == 1) { this.jour = 31; this.mois = 12; this.annee = this.annee - 1; } else { this.jour = this.jour - 1; } break; case 3: if (this.jour == 1) { if (this.annee % 4 == 0 && this.annee % 100 != 0 || this.annee % 400 == 0) { this.jour = 29; this.mois = this.mois - 1; } else { this.jour = 28; this.mois = this.mois - 1; } } break; case 5: case 7: case 8: case 10: if (this.jour > 31) { System.out.println("Date invalide"); } else { if (this.jour == 1) { this.jour = 30; this.mois = this.mois - 1; } else { this.jour = this.jour - 1; } } break; case 2: if (this.jour == 1) { this.jour = 31; this.mois = this.mois + 1; } else { this.jour = this.jour - 1; } break; case 12: if (this.jour == 1) { this.jour = 30; this.mois = this.mois - 1; } else { this.jour = this.jour - 1; } break; } System.out.println("La date d hier est le :" + this.jour + "/" + this.mois + "/" + this.annee); } public void nbJoursEcoulesPremierJanvier() { long duree = 1000l * 60 * 60 * 24; // Création de la nouvelle classe calendar avec le 01/01/annee en cour Calendar calendar1 = new GregorianCalendar(); calendar1.set(Calendar.YEAR, this.annee); calendar1.set(Calendar.MONTH, 1); calendar1.set(Calendar.DAY_OF_MONTH, 1); java.util.Date date1 = calendar1.getTime(); // Création de la seconde classe calendar avec les variables entrées par // l'utilisateurs Calendar calendar2 = new GregorianCalendar(); calendar2.set(Calendar.YEAR, this.annee); calendar2.set(Calendar.MONTH, this.mois); calendar2.set(Calendar.DAY_OF_MONTH, this.jour); java.util.Date date2 = calendar2.getTime(); // Différence entre les deux date long diff = Math.abs(date2.getTime() - date1.getTime()); long nombreDeJour = diff / duree; // affichage du nombre de jour System.out.println("Le nombre de jour depuis le 01/01/" + this.annee + ": " + nombreDeJour + " Jours"); } public void nbJourRestant31Decembre() { long duree = 1000l * 60 * 60 * 24; // Création de la nouvelle classe calendar avec le 31/12/annee en cour Calendar calendar1 = new GregorianCalendar(); calendar1.set(Calendar.YEAR, this.annee); calendar1.set(Calendar.MONTH, 12); calendar1.set(Calendar.DAY_OF_MONTH, 31); java.util.Date date1 = calendar1.getTime(); // Création de la seconde classe calendar avec les variables entrées par // l'utilisateurs Calendar calendar2 = new GregorianCalendar(); calendar2.set(Calendar.YEAR, this.annee); calendar2.set(Calendar.MONTH, this.mois); calendar2.set(Calendar.DAY_OF_MONTH, this.jour); java.util.Date date2 = calendar2.getTime(); // Différence entre les deux date long diff = Math.abs(date2.getTime() - date1.getTime()); long nombreDeJour = diff / duree; // affichage du nombre de jour restant avant le 31 decembre System.out.println("Il reste : " + nombreDeJour + " jour avant le 31 Decembre"); } public void equivalentMusulmane() { } public void equivalentJuive() { } public void equivalentChinoise() { } public void menu() { int choix; Scanner sc = new Scanner(System.in); do { System.out.println("\n\t ------------- Menu -------------"); System.out.println("\n\t - 1 Saisie d'une date -"); System.out.println("\n\t - 2 Afficher une date -"); System.out.println("\n\t - 3 Afficher date de demain -"); System.out.println("\n\t - 4 Afficher date d'hier -"); System.out.println("\n\t - 5 Afficher nombre jours écoulés depuis le premier janvier -"); System.out.println("\n\t - 6 Afficher nombre jours avant le 31 décembre -"); System.out.println("\n\t - 7 Equivalent musulman -"); System.out.println("\n\t - 8 Equivalent juive -"); System.out.println("\n\t - 9 Equivalent Chinois -"); System.out.println("\n\t --------------------------------"); System.out.println("\n\t Votre choix -> "); choix = sc.nextInt(); switch (choix) { case 1: this.saisir(); break; case 2: this.afficher(); break; case 3: this.demain(); break; case 4: this.hier(); break; case 5: this.nbJoursEcoulesPremierJanvier(); break; case 6: this.nbJourRestant31Decembre(); break; // case 7: // this.equivalentMusulmane(); // break; // case 8: // this.equivalentJuive(); // break; // case 9: // this.equivalentChinoise(); // break; default: System.out.println("Erreur de saisie !"); break; } } while (choix != 0); sc.close(); } public static void main(String[] args) { /* instanciation d'un objet */ Date tutu = new Date(0, 0, 0); tutu.menu(); } /* * ***************************************************************** * Getters Setters * ***************************************************************** */ }