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 :

recherche de dates, debutant.


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut recherche de dates, debutant.
    bonjour,
    j aimerai utiliser GregorianCalendar pour permettre une recherche entre deux dates à deux mois d intervalles :

    donc j utilise cette classe /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    GregorianCalendar date1 == new GregorianCalendar();
            date1.getTime().getMonth() );
     
    GregorianCalendar date2== new GregorianCalendar();
            date2.getTime().getMonth() -2); // pour dire que c est 2 mois qui sont comptes à partir du mois courant.
    cepedant ma date que je dois renvoyer au programme est de type Date et elle a etre prise en compte sous ce format de type AAA-MM-JJ.
    Dois je utiliser simpleDateFormat?

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Plusieurs conseils :

    Utilises un Calendar à la place d'un GregorianCalendar, dans les fait c'est pareil (Calendar.getInstance() renvoi un GregorianCalendar) mais ça permet d'utiliser un type plus générique

    Dans un Calendar, la méthode add permet de faire des calculs à partir d'une date de base, comme aller deux mois plus tôt/tard (au cas où tu le l'ais pas vu).

    La représentation AAAA-MM-JJ d'une date est une représentation sous forme de chaîne de caractères. Pour l'obtenir à partir d'un objet java.util.Date, oui, utilises un SimpleDateFormat, mais si ta méthode doit renvoyer une java.util.Date, il ne faut bien évidement pas le faire. C'est plus tard dans le "programme" que la java.util.Date sera convertie en java.lang.String, pour une recherche prenant une String en entrée (ce qui n'est pas le cas d'une requête SQL avec un PreparedStatement, ce n'est pas la question, mais ça coûte rien de le rappeler )

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut j ai utilise ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Date dateDebut = new Date();
    		Calendar cal = Calendar.getInstance();
    		cal.get(Calendar.MONTH);
    		dateDebut = cal.getTime();
     
    		Date dateFin = new Date();
    		Calendar cal2 = Calendar.getInstance();
    		cal2.get((Calendar.MONTH)+1);
    		dateFin = cal2.getTime();
    est-ce que cela semble correct, car je n ai pas utilise de Add
    sinon, les dates sont manipulées dans le programme en tant aue type Date, pas besoin de utiliser SimpleDateFormat

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut j ai amelioré : qu en pensez vous?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		Date dateDebut = new Date();
    		Calendar cal = Calendar.getInstance();
    		cal.set(Calendar.YEAR, Calendar.MONTH, Calendar.DAY_OF_MONTH);
    		dateDebut = cal.getTime();
    		System.out.println("dateDebut : " + dateDebut);
     
     
     
     
    		Date dateFin = new Date();
    		Calendar cal2 = Calendar.getInstance();
    		cal2.set(Calendar.YEAR, Calendar.MONTH - 2, Calendar.DAY_OF_MONTH);
    		dateFin = cal2.getTime();
    		System.out.println("dateFin : " + dateFin);

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut je crois que j ai trouve mon erreur

  6. #6
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    En un peu moins de lignes on peut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Calendar calendar = Calendar.getInstance();
    Date date1 = calendar.getTime();
    calendar.add(Calendar.MONTH, 2);
    Date date2 = calendar.getTime();

Discussions similaires

  1. [DEBUTANT]recherche de date - heure la plus proche
    Par tripper.dim dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/06/2007, 12h15
  2. [VBA-E]Recherche de date dans plusieurs feuilles
    Par atypik dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/04/2006, 20h36
  3. [VB6] Recherche de dates
    Par tim69000 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/03/2006, 15h40
  4. Determiner date debut de mois automatiquement
    Par TBMB51 dans le forum Access
    Réponses: 1
    Dernier message: 27/01/2006, 09h37
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

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