Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Java & Mobiles > Android
Android Forum d'entraide sur Android, la plateforme mobile de Google pour téléphones portables et Smartphones. Avant de poster -> FAQ Android
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/01/2013, 12h01   #1
ciolvic
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 117
Points : 37
Points : 37
Envoyer un message via MSN à ciolvic
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
ciolvic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 13h05   #2
nicroman
Modérateur
 
Homme Nicolas Romantzoff
Ingénieur systèmes et réseaux
Inscription : février 2007
Messages : 2 863
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 : 2 863
Points : 4 916
Points : 4 916
Envoyer un message via Skype™ à nicroman
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
nicroman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 13h56   #3
ciolvic
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 117
Points : 37
Points : 37
Envoyer un message via MSN à ciolvic
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.
ciolvic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 14h00   #4
ciolvic
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 117
Points : 37
Points : 37
Envoyer un message via MSN à ciolvic
Par contre j'ai encore une petite question quand le jour est le dernier jours du mois.

????
ciolvic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 14h03   #5
nicroman
Modérateur
 
Homme Nicolas Romantzoff
Ingénieur systèmes et réseaux
Inscription : février 2007
Messages : 2 863
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 : 2 863
Points : 4 916
Points : 4 916
Envoyer un message via Skype™ à nicroman
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
nicroman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 14h09   #6
ciolvic
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 117
Points : 37
Points : 37
Envoyer un message via MSN à ciolvic
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 .....
ciolvic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 14h59   #7
nicroman
Modérateur
 
Homme Nicolas Romantzoff
Ingénieur systèmes et réseaux
Inscription : février 2007
Messages : 2 863
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 : 2 863
Points : 4 916
Points : 4 916
Envoyer un message via Skype™ à nicroman
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
nicroman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 17h42   #8
ciolvic
Nouveau Membre du Club
 
Inscription : avril 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 117
Points : 37
Points : 37
Envoyer un message via MSN à ciolvic
Merci beaucoup j'ai développé un petit algorithme pour avoir plus d'informations.
ciolvic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h05.


 
 
 
 
Partenaires

Hébergement Web