Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Nouveau Membre du Club
    Inscrit en
    avril 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 123
    Points : 37
    Points
    37

    Par défaut récupération date en bdd sqlite

    Bonjour, avant de commencer.
    Bonne année tout le monde.

    Je suis bloqué sur la récupération d'une date. Je m'explique plus clairement.
    Je suis entrain de développer un logiciel basé sur les voyages que les personnes font. Dans celui-ci quand un voyage est commencé, je fais une requête pour savoir si il y a déjà une étape à mon projet(état du voyage). Si oui alors dans le cas là, je récupère la date de la dernière étape et je lui rajoute un.

    Voici le code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    if(vyg.getCount()>0)
            {
            	vyg.moveToLast();
            	Date datems = new Date(vyg.getInt(PwtProvider.M_DATE_DEPLACEMENT_COLUMN));
            	annee = datems.getYear();
            	mois = datems.getMonth();
                jour = datems.getDate()+1;
            }
            else
            {
            	 // récupérer la date actuelle
    	        final Calendar c = Calendar.getInstance();
    	        annee = c.get(Calendar.YEAR);
    	        mois = c.get(Calendar.MONTH);
    	        jour = c.get(Calendar.DAY_OF_MONTH);     
            }

    Là c'est à moitié bon car en faites il me mets la date mais avec l'année qui est égal à je dirais un peu n'importe quoi.

    Si vous avez une idée ......

    Loïc

  2. #2
    Modérateur

    Homme Profil pro Nicolas Romantzoff
    Ingénieur systèmes et réseaux
    Inscrit en
    février 2007
    Messages
    3 596
    Détails du profil
    Informations personnelles :
    Nom : Homme Nicolas Romantzoff
    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 : 3 596
    Points : 6 265
    Points
    6 265

    Par défaut

    Déjà, question bateau... pourquoi vouloir séparée jour/mois/année ?

    La "Date" est suffisante à elle même.

    Ensuite, en l'état, il me semble que Eclipse devrait mettre un GROS warning de cast manquant sur la ligne:

    Date datems = new Date(vyg.getInt(PwtProvider.M_DATE_DEPLACEMENT_COLUMN));

    Qui devrait être remplacé par:

    Date datems = new Date(vyg.getLong(PwtProvider.M_DATE_DEPLACEMENT_COLUMN));

    Bon ensuite je ne connais pas la structure de la base de données mais le code pourrait être:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    Date datems = null;
    if (vyg.moveToLast()) {
        if (!vyg.isNull(PwtProvider.M_DATE_DEPLACEMENT_COLUMN))
            datems = new Date(vyg.getLong(PwtProvider.M_DATE_DEPLACEMENT_COLUMN));
    }
    if (datems == null)
        datems = new Date();

    Et comment sont stockés les dates dans la DB ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Nouveau Membre du Club
    Inscrit en
    avril 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 123
    Points : 37
    Points
    37

    Par défaut

    Merci beaucoup pour ta réponse. Par contre éclipse ne m'as pas mis de WARNING sur la ligne. Autrement je stocke les dates en entiers dans ma base.
    Il est entièrement vrai que j'aurais dû mettre un getLong à la place du getInt.

    Merci beaucoup.

  4. #4
    Nouveau Membre du Club
    Inscrit en
    avril 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 123
    Points : 37
    Points
    37

    Par défaut

    Par contre j'ai encore une petite question quand le jour est le dernier jours du mois.

    ????

  5. #5
    Modérateur

    Homme Profil pro Nicolas Romantzoff
    Ingénieur systèmes et réseaux
    Inscrit en
    février 2007
    Messages
    3 596
    Détails du profil
    Informations personnelles :
    Nom : Homme Nicolas Romantzoff
    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 : 3 596
    Points : 6 265
    Points
    6 265

    Par défaut

    Oui oui ... au temps pour moi.... il ne dit rien sur (int) vers (long), ... je croyais que les fonctions renvoyait des Integer et Long ce qui n'est pas le cas évidemment puisqu'on doit tester la nullité différemment.

    Par contre tu n'as pas répondu à ma question bateau
    "Pourquoi vouloir séparer jour/mois/année ?"

    Si les dates sont bien stockées par un code genre Date.getTime() (en Long) alors il ne devrait pas y avoir de problème.

    Rajoutes du Log.i avec la valeur récupérée de la base de donnée....
    puis avec la date obtenue. on sait jamais.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  6. #6
    Nouveau Membre du Club
    Inscrit en
    avril 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 123
    Points : 37
    Points
    37

    Par défaut

    oui excuse alors en faites la date ensuite est affiché dans un pickerdatedialog. Donc en faite à l'affichage je formate la chaine de cette façon "dd-mm-yyyy".
    Voilà, par contre il me fait une erreur quand je mets le dernier jour du mois .....

  7. #7
    Modérateur

    Homme Profil pro Nicolas Romantzoff
    Ingénieur systèmes et réseaux
    Inscrit en
    février 2007
    Messages
    3 596
    Détails du profil
    Informations personnelles :
    Nom : Homme Nicolas Romantzoff
    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 : 3 596
    Points : 6 265
    Points
    6 265

    Par défaut

    Oui, donc c'est ce que je dis, il faut conserver l'objet Date et utiliser un DateFormat:
    Code :
    1
    2
    3
     
    SimpleDateFormat sdf = new SimpleDateFormat("dd-mm-yyyy");
    String datetext = sdf.format(date);
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  8. #8
    Nouveau Membre du Club
    Inscrit en
    avril 2009
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 123
    Points : 37
    Points
    37

    Par défaut

    Merci beaucoup j'ai développé un petit algorithme pour avoir plus d'informations.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •