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

Android Discussion :

Comparer Dates Millisecondes


Sujet :

Android

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 27
    Points
    27
    Par défaut Comparer Dates Millisecondes
    Bonjour,

    J'ai une BDD dans laquelle il y a des dates en Milissecondes, que que souhaite extraire sous certaines conditions (je veux que tout les enregistrements d'un mois donné s'affichent). Seulement rien ne d'affiche.
    La requête affiche bien les résultats si je ne filtre pas, pouvez-vous m'expliquer pourquoi cela ne fonctionne pas svp...

    Voici mon code:

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    /** Récupération de l'index des Spinner **/
    		int Month_Selected = Spinner_Month.getSelectedItemPosition();
    		int Year_Selected = (Integer) Spinner_Year.getSelectedItem();
    		int Categorie_Selected = Spinner_cat.getSelectedItemPosition();
    		//Toast.makeText(getBaseContext(),"text : "+ Spinner_Year.getSelectedItem(), Toast.LENGTH_SHORT).show();
     
    		/** MAJ des dates **/
    		calendar.set(Calendar.DAY_OF_MONTH, 1);
        	calendar.set(Calendar.MONTH, Month_Selected);
        	calendar.set(Calendar.YEAR, Year_Selected);
     
        	/** Retour de la Date **/
        	String Date_selected = sdf.format(calendar.getTime());
    		Toast.makeText(getBaseContext(),"Date : "+ Date_selected, Toast.LENGTH_SHORT).show();
     
    		/** Convertion en Millisecondes **/
    		Millisecondes = calendar.getTimeInMillis();
    		Toast.makeText(getBaseContext(),"Millisecondes : "+ Millisecondes, Toast.LENGTH_SHORT).show();
     
    		/** Max de jours dans un mois **/
    		Month_Year.add(Calendar.JANUARY);
    		Month_Year.add(Calendar.FEBRUARY);
    		Month_Year.add(Calendar.MARCH);
    		Month_Year.add(Calendar.APRIL);
    		Month_Year.add(Calendar.MAY);
    		Month_Year.add(Calendar.JUNE);
    		Month_Year.add(Calendar.JULY);
    		Month_Year.add(Calendar.AUGUST);
    		Month_Year.add(Calendar.SEPTEMBER);
    		Month_Year.add(Calendar.OCTOBER);
    		Month_Year.add(Calendar.NOVEMBER);
    		Month_Year.add(Calendar.DECEMBER);
    		/** Nbre de jours dans un mois **/
    		mycal = new GregorianCalendar(Year_Selected, Month_Year.get(Month_Selected), 1);
    		int daysInMonth = mycal.getActualMaximum(Calendar.DAY_OF_MONTH);
    		Toast.makeText(getBaseContext(),"daysInMonth : "+ daysInMonth, Toast.LENGTH_SHORT).show();
     
    		/** MAJ des dates Max**/
    		calendar2.set(Calendar.DAY_OF_MONTH, daysInMonth);
        	calendar2.set(Calendar.MONTH, Month_Selected);
        	calendar2.set(Calendar.YEAR, Year_Selected);
    		//Toast.makeText(getBaseContext(),"daysInMonth : "+ daysInMonth, Toast.LENGTH_SHORT).show();
     
        	/** Convertion en Millisecondes MAX **/
        	String Date_selected_Max = sdf.format(calendar2.getTime());
        	Toast.makeText(getBaseContext(),"Date_selected_Max : "+ Date_selected_Max, Toast.LENGTH_SHORT).show();
    		Millisecondes_Max = calendar2.getTimeInMillis();
     
    	    /** Instancier XML Listview **/
    	    listContent = (ListView)findViewById(R.id.list); 
     
    	    /** ecrire dans la table **/
    	    MetierDAO MetierDAOS = new MetierDAO(this);
    	    MetierDAOS.open();
     
    	    /** Requête : Extraction des dépenses **/
    	    cursor = MetierDAOS.mDb.rawQuery("SELECT id as _id,"+ 
    	    FluxDAO.FLUX_NAME + "," + 
    	    FluxDAO.FLUX_DATE1 + "," +
    	    FluxDAO.FLUX_MONEY + 
    	    " FROM " + FluxDAO.FLUX_TABLE_NAME +
    	    " WHERE " + FluxDAO.FLUX_DATE1 + " >= " + Millisecondes + 
    	    " AND " + FluxDAO.FLUX_DATE1 + " <= " + Millisecondes_Max, null);

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Heu... je me suis perdu un peu dans le code....

    Mais grosso-modo (attention aux conventions de nommages en Java !!!)

    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
     
    static final String DATE_QUERY = "SELECT id as _id,"+ 
    	    FluxDAO.FLUX_NAME + "," + 
    	    FluxDAO.FLUX_DATE1 + "," +
    	    FluxDAO.FLUX_MONEY + 
    	    " FROM " + FluxDAO.FLUX_TABLE_NAME +
    	    " WHERE " + FluxDAO.FLUX_DATE1 + " >= ? AND " + FluxDAO.FLUX_DATE1 + " < ?";
     
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR,selectedYear);
    cal.set(Calendar.MONTH,selectedMonth);
    cal.set(Calendar.DAY_OF_MONTH,1);
     
    Date minDate = cal.getTime();
     
    cal.add(Calendar.MONTH,1);
    Date maxDate = cal.getTime();
     
    Log.d("MetierDAOS","Date Query: "+minDate+" to "+maxDate);
     
    Cursor cursor = MetierDAOS.mDb.rawQuery(DATE_QUERY , new String[] { Long.toString(minDate.getTime()), Long.toString(maxDate.getTime()) } );
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 40
    Points : 27
    Points
    27
    Par défaut
    Merci,

    Je sais maintenant pourquoi rien ne s'affichait : la date qui ne s'affichait pas était le 1er du mois. J'ai du changé :

    calendar.set(Calendar.DAY_OF_MONTH, 1);
    par :
    calendar.set(Calendar.DAY_OF_MONTH, 0);

    A l'affichage il me manquait le 1er du mois, mais j'avais aussi le 1er du mois suivant qui s'affichait.

    J'ai remplacé mes lignes de code par les tiennes qui sont beaucoup plus claires et plus courtes. J'ai également été faire un tour sur les conventions de nommage.

    Merci bien

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    haaa oui je me goure toujours pour le DAY_OF_MONTH
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

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

Discussions similaires

  1. Comparer date et chaîne
    Par MICHEL_R dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/05/2008, 11h53
  2. [Comparer][Date] : récupérer la différence
    Par Darkroro dans le forum Modules
    Réponses: 2
    Dernier message: 30/10/2006, 09h52
  3. comparer date dans requete
    Par lazzeroni dans le forum Oracle
    Réponses: 1
    Dernier message: 23/05/2006, 15h55
  4. [Dates] Dates + milliseconde
    Par messier79 dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2005, 12h26
  5. Réponses: 4
    Dernier message: 24/08/2004, 13h54

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