IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Ajouter une minute à une date


Sujet :

Collection et Stream Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 239
    Points : 173
    Points
    173
    Par défaut Ajouter une minute à une date
    Bonjour,

    Je sais est ce que il existe un moyen plus simple qui permet d'ajouter une minute à une date (date = new Date().

    Merci d'avance.

  2. #2
    Membre éprouvé
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Points : 950
    Points
    950
    Par défaut Ajouter une minute à une date
    Bonjour,
    Essayes avec la date de format long (jj/mm/aaaa hh:mm:ss)
    ça donne quoi ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 239
    Points : 173
    Points
    173
    Par défaut
    Oui avec ça c'est possible, mais ce que je veux c'est de faire un truc genre : new Date() + 1 min ; mais comment transformer ça en java

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Bonjour,

    Avec GregorianCalendar.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     ....
       //import java.util.GregorianCalendar;
    	....
     
             // Obtenir la date du jour
             GregorianCalendar gc = new GregorianCalendar();
                // obtention des composants de la date :
             int annee = gc.get(Calendar.YEAR);
             int mois = gc.get(Calendar.MONTH);
             int jour = gc.get(Calendar.DAY_OF_MONTH);
             int heure = gc.get(Calendar.HOUR_OF_DAY);
             int minxx = gc.get(Calendar.MINUTE);
     
    // Avant:
             System.out.println("annee = " + annee);
             System.out.println("mois = " + (mois + 1)); //le mois obtenu est 0 à 11
             System.out.println("jour = " + jour);
             System.out.println("heure = " + heure);	
             System.out.println("minutes = " + min);
                // On réinjecte les données obtenues dont les minutes + 1
     
    //C'est ici qu'on additionne 1 minute
             gc = new GregorianCalendar(annee, mois, jour, heure, min + 1);
     
                // on fait une relecture pour contrôler
     
             annee = gc.get(Calendar.YEAR);
             mois = gc.get(Calendar.MONTH);
             jour = gc.get(Calendar.DAY_OF_MONTH);
             heure = gc.get(Calendar.HOUR_OF_DAY);
             min = gc.get(Calendar.MINUTE);
     
    Après:
             System.out.println("annee = " + annee);
             System.out.println("mois = " + (mois + 1)); //le mois obtenu est 0 à 11
             System.out.println("jour = " + jour);
             System.out.println("heure = " + heure);	
             System.out.println("minutes = " + min);
    // Et on n'a même pas à se préoccuper d'un report éventuel sur l'heure, le jour, le mois ou l'année

    Cordialement,

    Dan

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    c'est un peux gros là, je dirais plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Calendar c = new GregorianCalendar(date);
    c.add(Calendar.MINUTES,1);
    date = c.getTime();

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Oui c'est tout à fait vrai, mais je voulais montrer un peu plus des possibilités de GregorianCalendar... Et aussi afficher (mal peut-être) la date avant + 1 minute et après.

    Cordialement,

    Dan

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Un petit détail tout de même :

    IL n’y a pas de constructeur GregorianCalendar(java.util.Date)

    Ce qu’il faudrait c’est:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     Date date = new Date();  // date du jour
     
    Avant:
             System.out.println("date avant + 1 minute = " + date);
     
             Calendar c = new GregorianCalendar(); // date du jour et non (date)
    // ou nimporte quelle date mais en fournissant l'année, le mois - 1, le jour, 
    // l'heure, les minutes et dans cet ordre
    // Calendar c = new GregorianCalendar(annee, mois-1, jour, heure, minutes);
    // Ne pas oublier que l'équivalent avec Date() est "DEPRECATED"
             c.add(Calendar.MINUTE,1);  // et non MINUTES
             date = c.getTime();
     
    Après:
             System.out.println("date apres + 1 minute = " + date);
    En plus, ne vaut-il pas mieux éviter d'utiliser java.util.Date ?

    Cordialement,

    Dan

  8. #8
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Et c quoi la différence entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Calendar c = new GregorianCalendar();
    ET

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Calendar c = getInstance.Calendar();
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Calendar.getInstance() te retourne un calendrier pour la timezone et la locale par défaut de la machine. Ce calendrier est aproprié à ces paramètre. En pratique ce sera presque toujours un GregorianCalendar. Je ne sais pas si il existe des cas où ça retourne autre chose, mais l'api ne garantit pas que ce sera u gregoriancalendar.

    new GregorianCalendar() te crée un calendrier gregorien callé sur la timezone et la locale par défaut de ta machine. La t'as la garantie que c'est du grégorien. En pratique si t'as pas besoin de l'api GregorianCalendar, tu peux utiliser getInstance().

    En rapport avec le passage d'une objet Date, c'est vrai, m'est trompé Il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Calendar c = .... // exemple Calendar.getInstance();
    c.setDate(laDate);
    pour ce qui est de de se passer de java.util.Date ,difficile quand on sait que le SimpleDateFormat retourne et gère des Date, pas des Calendar ^^

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par danimo Voir le message
    En plus, ne vaut-il pas mieux éviter d'utiliser java.util.Date ?
    Non, il faut voir l'objet Date comme un conteneur d'information et le Calendar comme un manipulateur de l'information. Les deux sont utiles (en attendant la nouvelle version prévue pour Java 7, si tout va bien).

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Citation Envoyé par Fench Voir le message
    Bonjour,

    Et c quoi la différence entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Calendar c = new GregorianCalendar();
    ET

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Calendar c = getInstance.Calendar();
    Sans paramètres il n'y en a pas mais à condition décrire correctement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Calendar c = Calendar.getInstance();
    getInstance
    public static Calendar getInstance()
    Gets a calendar using the default time zone and locale. The Calendar returned is based on the current time in the default time zone with the default locale.
    Returns:
    a Calendar.

    Avec paramètres si.
    getInstance
    public static Calendar getInstance(TimeZone zone)
    Gets a calendar using the specified time zone and default locale. The Calendar returned is based on the current time in the given time zone with the default locale.
    Parameters:
    zone - the time zone to use
    Returns:
    a Calendar.


    getInstance
    public static Calendar getInstance(Locale aLocale)
    Gets a calendar using the default time zone and specified locale. The Calendar returned is based on the current time in the default time zone with the given locale.
    Parameters:
    aLocale - the locale for the week data
    Returns:
    a Calendar.


    getInstance
    public static Calendar getInstance(TimeZone zone,
    Locale aLocale)
    Gets a calendar with the specified time zone and locale. The Calendar returned is based on the current time in the given time zone with the given locale.
    Parameters:
    zone - the time zone to use
    aLocale - the locale for the week data
    Returns:
    a Calendar

    Cordialement,

    Dan

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2021, 16h57
  2. [11g] Ajout des minutes à une date
    Par fetano dans le forum PL/SQL
    Réponses: 3
    Dernier message: 22/07/2014, 04h28
  3. Réponses: 3
    Dernier message: 15/04/2014, 12h32
  4. Ajouter cinq minutes à une date
    Par Moostiq dans le forum SQL
    Réponses: 2
    Dernier message: 03/01/2012, 15h08
  5. [RegExp] Détecter des combinaisons dans une chaine une par une
    Par vermine dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/06/2010, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo