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 :

[Débutant] Additionner une date et une durée


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 31
    Par défaut [Débutant] Additionner une date et une durée
    Bonjour !

    Je vais tenter d'expliquer mon problème de manière la plus simple possible.

    Je pars d'une date au format GMTCalendar et je souhaite lui ajouter (ou lui soustraire) une valeur au format Time.

    Ma classe GMT Calendar est la suivante :

    Dans ma base de données, je récupère la valeur qui doit être ajoutée ou soustraite à ma date (il faut que l'ajout ou la suppression tienne compte des changements de jours).

    J'ai bien tenté un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dateAuformatGMT.getTime() + dateAuFormatGMT.getTime()
    mais cela s'est avéré sans effet.

    Pouvez vous m'aider ? Merci beaucoup d'avance, je suis un peu perdue...comme toujours !

  2. #2
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Citation Envoyé par pinggu
    Je pars d'une date au format GMTCalendar et je souhaite lui ajouter (ou lui soustraire) une valeur au format Time.
    Tu veux faire quoi : ajouter les date et heure (en ms) de ta "Date" avec l'heure (en ms) de ton "Time", ou ne conserver que la partie date de ta "Date" et la partie heure de ton "Time" ?

    Citation Envoyé par pinggu
    J'ai bien tenté un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dateAuformatGMT.getTime() + dateAuFormatGMT.getTime()
    mais cela s'est avéré sans effet.
    Ce serait pas plutôt (pseudo-code)...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    long jour = 24 * 60 * 60 * 1000;
    this.setTime(((date.getTime()/jour)*jour)+(time.getTime()%jour));

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 31
    Par défaut
    Woaw merci pour la réponse rapide !
    Alors en fait, je voudrais ajouter les date et heure (en ms) de ma "Date" au format GMTCalendar avec l'heure (en ms) de mon "Time", de manière à obtenir une nouvelle date au format GMT de laquelle je pourrai récupérer les différents composants.

  4. #4
    Membre émérite Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Par défaut
    Ce n'est que du pseudo-code (encore 1 fois), car il faut bien qu'il te reste quelquechose à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Date maDate = new Date(); // ms systeme
    Calendar monCalendrier = new GMTCalendar(maDate); // initialisation
    Time monHeure; // deja recupere avant
    monCalendrier.setTimeInMillis(monCalendrier.getTimeInMillis()+monHeure.getTime()); // c'est fait (en ms pour tout)

  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 31
    Par défaut
    Je viens de tenter vos propositions. Celle de g_rare marche presque parfaitement. Il se trouve que le résultat final est décalé d'une heure !

    Pour un ajout de deux heures à l'heure initiale, je me retrouve avec un avancement d'une heure seulement. De même, pour un ajout d'une heure, l'heure de départ n'est pas modifiée...

    En adaptant l'exemple que tu m'as proposé, j'ai le code suivant qui fonctionne très bien, à part cet écart dans l'heure finale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    passage.getDateLOS().setTimeInMillis
    (passage.getDateLOS().getTimeInMillis()+tacheSchedule.getOffset().getTime());

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Comparer une date d'une table et une date saisie
    Par minooo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/03/2019, 21h40
  2. [DeskI XiR2] Comparaison d'une valeur à une date et à une date relative
    Par courti01 dans le forum Débuter
    Réponses: 1
    Dernier message: 07/11/2010, 21h39
  3. Réponses: 2
    Dernier message: 05/03/2008, 17h11
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 20h16

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