Exemple40_CalendarRetourTélécharger Exemple de code d'utilisation de la classe Calendar Exemple40.java // Exemple de code d'utilisation de la classe Calendar // import java.util.*; import java.text.*; public class Exemple40 { static public void main(String[] args) { // Retourne la date courante // Une date calendar contient les heures minutes secondes et // millisecondes du temps courant => Attention au comparaison de dates // Calendar date = Calendar.getInstance(); System.out.println(date.toString()); // Pas si illisible que cela mais affiche toutes les informations Date d = date.getTime(); System.out.println(d.toString()); // Plus lisible car Date ne contientque les informations essentielles // Sun Dec 14 17:19:19 CET 2014 //Si on veut créer une date en fonction des informations // entières de date et heure // Exemple pour 28/11/2014 12h35 // date = Calendar.getInstance(); date.clear(); date.set(2014,11,28,12,35,0); System.out.println(">> "+date.getTime()); // Sun Dec 28 12:35:00 CET 2014 // Pour montrer que deux dates calendar obtenus dans un programme ne // sont pas égales date = Calendar.getInstance(); Terminal.ecrireString("tapez une touche..."); Terminal.lireString(); // Pour mettre un peu de temps entre la creation // des deux dates Calendar date2 = Calendar.getInstance(); if (date.equals(date2)) System.out.println("EGALES"); // PAS EGALES else System.out.println("PAS EGALES"); // Si on veut récupérer la date courante et la comparer avec // des dates qui n'ont pas de heures minutes secondes et millisecondes // il faut enleber les infos heures minutes secondes et millisecondes date = Calendar.getInstance(); Terminal.ecrireString("tapez une touche..."); Terminal.lireString(); date2 = Calendar.getInstance(); date.clear(Calendar.HOUR); date.clear(Calendar.MINUTE); date.clear(Calendar.SECOND); date.clear(Calendar.MILLISECOND); date2.clear(Calendar.HOUR); date2.clear(Calendar.MINUTE); date2.clear(Calendar.SECOND); date2.clear(Calendar.MILLISECOND); System.out.println("date>> "+date2.getTime()); System.out.println("date2>> "+date2.getTime()); if (date.equals(date2)) System.out.println("EGALES"); // EGALES else System.out.println("PAS EGALES"); //Si on gère une date en jour mois annee heure et minute // et que l'on veut savoir si cette date est égale à une date d'un jour // On utilise un clone pour ne pas altéré la date initiale. // // date2 est une date de jour (actuelle) // date = Calendar.getInstance(); Calendar dateJour = (Calendar)date.clone(); // clone dateJour.clear(Calendar.HOUR); dateJour.clear(Calendar.MINUTE); dateJour.clear(Calendar.SECOND); dateJour.clear(Calendar.MILLISECOND); System.out.println("date2>> "+date2.getTime()); System.out.println("dateJour>> "+date2.getTime()); if (date2.equals(dateJour)) System.out.println("EGALES"); // EGALES else System.out.println("PAS EGALES"); //A partir d'une chaine au format "JJ/MM/AAAA HH:MM" // Utilisation de la classe SimpleDateFormat qui est dans le package java.text // SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm"); Date d1 = sdf.parse("28/11/2014 12:35",new ParsePosition(0)); System.out.println("sdf to d1>> "+d1); // Fri Nov 28 12:35:00 CET 2014 // La Date d1 créée a été créée avec la classe Calendar // // Pour passer de Date à Calendar Calendar cald1 = Calendar.getInstance(); cald1.setTime(d1); // La valeur d'une date en millisecondes ( depuis 1 Janvier 1970) // long time = date.getTimeInMillis(); System.out.println("Time : "+time); // Pour le projet sur les rendez-vous il est conseillé quand // on crée un rendez-vous on initialise deux attributs: // Calendar dateHeure; qui est la date en jour, mois, annee, heure et minute du rendez-vous // Calendar dateJour; qui est la date en jour, mois et annee du rendez-vous // // L'attribut dateHeure permet d'ordonner chronologiquement les rendez-vous // // L'attribut dateJour permet de déterminer les rendez-vous qui appartiennnent à un jour donné // } } Terminal.java import java.io.*; import java.util.*; /** La classe Terminal permet de réaliser ses premiers programmes Java en permettant d'afficher dans la console d'exécution des données de type différents, et en permettant de saisir au clavier des données de type différents.<BR> Elle permet aussi de lire et écrire un fichier texte Cette classe contient que des méthodes statiques. */ public class Terminal{ // Le buffer standard de lecture = le clavier private static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); /** Cette méthode lit un fichier texte et retourne le contenu du fichier sous la forme d'un tableau de String dont chaque element est une ligne du fichier. @param nomFichier le nom du fichier qui doit être dans le répertoire courant. @return String[] le contenu du fichier. @exception TerminalException (de type RuntimeException) si erreur d'écriture<BR> Rappel : Une exception de type RuntimeException n'a pas l'obligation d'être capturée. */ public static String[] lireFichierTexte(String nomFichier) { try{ File fichier = new File(nomFichier); FileInputStream fis = new FileInputStream(new File(nomFichier)); byte[] buffer = new byte[(int)fichier.length()]; fis.read(buffer); fis.close(); String str = new String(buffer); // On enleve le caractère '\r' code 13 qui est ajouté en Windows // Les fins de ligne dans un fichier texte créé sous Windows // se termine par \r\n. // Il faut enlever le \r car il a des effets perturbant sur // la méthode System.out.print et est pris comme un caractère de plus // qu'il faut éliminer // String texte = str.replaceAll(""+(char)(13),""); // Les lignes du fichier sont mises dans un tableau // String[] mots = texte.split("\n"); return(mots); } catch(Exception ex) { exceptionHandler(ex); } return null; } /** Cette méthode permet de créer un fichier texte à partir du contenu d'un StringBuffer. @param nomFichier Le nom du fichier qui est créé dans le répertoire courant @param strbuf Le StringBuffer contenant le texte à écrire. @exception TerminalException (de type RuntimeException) si erreur d'écriture */ public static void ecrireFichier(String nomFichier, StringBuffer strbuf) { try{ File fichier = new File(nomFichier); FileOutputStream fos = new FileOutputStream(new File(nomFichier)); byte[] buffer = strbuf.toString().getBytes(); fos.write(buffer); fos.close(); } catch(Exception ex) { exceptionHandler(ex); } } /** Cette méthode lit une chaîne de caractère @return String la chaîne saisie dans la console d'exécution @exception TerminalException (de type RuntimeException) si erreur de lecture */ public static String lireString() // Lire un String { String tmp=""; char C='\0'; try { tmp = in.readLine(); } catch (IOException e) { exceptionHandler(e); } return tmp; } /** Cette méthode lit un entier @return int L'entier saisi dans la console d'exécution @exception TerminalException (de type RuntimeException) si la saisie n'est pas un entier ou erreur de lecture */ public static int lireInt() // Lire un entier { int x=0; try { x=Integer.parseInt(lireString()); } catch (NumberFormatException e) { exceptionHandler(e); } return x ; } /** Cette méthode lit un boolean (false ou true) @return boolean Le boolean saisi dans la console d'exécution @exception TerminalException (de type RuntimeException) si erreur de lecture. <BR> Tout autre valeur que TRUE, FALSE, true ou false, retourne la valeur false */ public static boolean lireBoolean() // Lire un entier { boolean b = true; try { b = Boolean.valueOf(lireString()).booleanValue(); } catch (NumberFormatException e) { exceptionHandler(e); } return b; } /** Cette méthode lit un double @return double Le double saisi dans la console d'exécution @exception TerminalException (de type RuntimeException) si la valeur saisie n'est pas un double ou ereur de lecture. */ public static double lireDouble() // Lire un double { double x=0.0; try { x=Double.valueOf(lireString()).doubleValue(); } catch (NumberFormatException e) { exceptionHandler(e); } return x ; } /** Cette méthode lit un caractère. @exception TerminalException (de type RuntimeException) si erreur de lecture.<BR> Si on saisit plus d'1 caractère alors le caractère retourné est le premier. */ public static char lireChar() // Lire un caractere { String tmp=lireString(); if (tmp.length()==0) return '\n'; else { return tmp.charAt(0); } } /** Cette méthode écrit une chaine et ne revient pas à la ligne. @param s la chaine à écrire */ public static void ecrireString(String s){ // Afficher un String System.out.print(s); } /** Cette méthode écrit une chaine et revient à la ligne. @param s la chaine à écrire */ public static void ecrireStringln(String s) // Afficher un String { ecrireString(s); sautDeLigne(); } /** Cette méthode écrit un entier et ne revient pas à la ligne. @param i l'entier à écrire */ public static void ecrireInt(int i) // Afficher un entier { ecrireString(""+i); } /** Cette méthode écrit un entier et revient à la ligne. @param i l'entier à écrire */ public static void ecrireIntln(int i) // Afficher un entier { ecrireString(""+i); sautDeLigne(); } /** Cette méthode écrit un booléan et ne revient pas à la ligne. @param b le booléen à écrire */ public static void ecrireBoolean(boolean b){ ecrireString(""+b); } /** Cette méthode écrit un booléan et revient à la line. @param b le booléen à écrire */ public static void ecrireBooleanln(boolean b){ ecrireString(""+b); sautDeLigne(); } /** Cette méthode écrit un double et ne revient pas à la ligne. @param d le double à écrire */ public static void ecrireDouble(double d) // Afficher un double { ecrireString(""+d); } /** Cette méthode écrit un double et revient à la ligne. @param d le double à écrire */ public static void ecrireDoubleln(double d) // Afficher un double { ecrireDouble(d); sautDeLigne(); } /** Cette méthode écrit un caractère et ne revient pas à la ligne. @param c le caractère à écrire */ public static void ecrireChar(char c) // Afficher un caractere { ecrireString(""+c); } /** Cette méthode écrit un caractère et revient à la ligne. @param c le caractère à écrire */ public static void ecrireCharln(char c) // Afficher un caractere { ecrireChar(c); sautDeLigne(); } /** Cette méthode revient à la ligne. */ public static void sautDeLigne(){ try{ System.out.println(); }catch(Exception ex){ exceptionHandler(ex); } } /** Cette méthode retourne l'exception TerminalException */ protected static void exceptionHandler(Exception ex){ TerminalException err = new TerminalException(ex); throw err; } /** Cette méthode écrit une exception avec la pile dans la console @param ex l'exception à écrire */ public static void ecrireException(Throwable ex){ ecrireString(ex.toString()); ex.printStackTrace(System.out); } } /** Classe de définition de l'exception TerminalException qui peut être retournée dans l'usage des méthodes de la classe Terminal. */ class TerminalException extends RuntimeException{ Exception ex; TerminalException(Exception e){ ex = e; } } compil.bat mkdir bin del /f /s /q bin\*.class javac -d bin Exemple40.java pause run.bat cd bin java -classpath "." Exemple40 cd .. pause