|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : janvier 2012 Messages : 58 ![]() |
Bonjour,
Je rencontre un problème dans la manipulation de dates. J'utilise un fichier Excel que je convertis en XML et qui s'installe sur la SDCard du téléphone. Dans ce fichier se trouve différentes colonnes dont une colonne "jour". Dans celle-ci je mets les numéros du jour qui correspondent aux samedis de chaque semaine de l’année... Je mets aussi les jours fériés quand il y en a. Exemple: je mets 22 pour ce samedi 22/12/212 et le 25 pour mardi 25/12/12) Voici mon code : Code :
A partir de la date du jour (aujourd'hui par exemple), l'application doit tomber sur le samedi. Exemple : trouver le 22 dans mon fichier XML et me donner les infos du 22/12/12. A partir du 24 l'application doit me donner les infos lorsqu'un jour férié tombe dans la semaine exemple le 25 (la date du 25/12/12). Je prends ces dates en exemple mais cela doit se répéter chaque semaine de l'année et à chaque fois qu'il y a un jour férié. Le problème : L'application me donne directement les infos du 25 au lieu du 23. Ce qui marche: Sans les jours fériés ça fonctionne. Je pense que cela vient d'une mauvaise programmation pour le jour férié vu que lorsque je me passe des jours fériés ça fonctionne. J'ai cherché sur le forum mais je n'ai rien trouvé. Quelqu'un saurait-il m'indiquer comment résoudre ce problème ? Merci d'avance pour votre aide. |
||
|
|
00
|
|
|
#2 | ||||||||
![]() ![]() |
Bonjour,
Si j'ai bien compris... tu veux une fonction qui te renvoie la date du prochain samedi et/ou jour férié... D'abord une remarque... "Date" est un type ostensiblement "UTC", donc non adapté au travail sur les dates calendaires, mais particulièrement adaptées aux dates séquentielles.... Ainsi, lors des changement d'heure, les objets "Date" sont toujours consécutifs... pas forcément les date calendaires (retour d'une heure en arrière). A l'inverse, Calendar (et son implémentation "calendrier grégorien" GregorianCalendar) est axé dans ce sens.... Il me semble que tu programmes "à l'envers" la logique (ce n'est pas un reproche hein ! "Ce que j'ai compris" c'est bien renvoyer la date du prochain samedi, ou du premier jour ferié avant ce samedi. Donc on devrait partir du samedi, (facile à trouver), et RECULER de jour en jour.... Donc à priori, déjà, deux fonctions: La première récupérer le samedi suivant: Code :
Déjà, quelques soucis dans ton code: int ferie[]={1125}; d'après toi veut dire 25 décembre... Comment seront notés le 2 décembre ? (112) et le 12 janvier ? (112)... Je dis ça, parce qu'un peu plus loin dans le code tu fais: String tmp = String.valueOf(mMonth2)+String.valueOf(mDay2);Bref, sans séparateur jour/mois, point de salut.... Et comment faire le 31 décembre, si le prochain samedi est bien le 4 janvier 2013 et le prochain jour férié le 1 janvier 2013 ? Je pense qu'il vaut mieux stocker des dates calendaires ici aussi... (donc un tableau de Calendar[]), pour des raisons de sémantiques avant-tout (quitte à passer un peu plus de temps à la traduction du fichier XML). Non seulement cela simplifiera le "debug" du code, mais aussi la compréhension quand celui ci aura dormi pendant 10 mois On peut aussi stocker un tableau de String[], mais bien penser à un séparateur entre jour/mois et année.... Bref... un DateFormat quoi ! Donc bon... ne sachant pas comment est stocké la valeur dans le XML (pourquoi pas utiliser un simple CSV d'ailleurs ? ou juste une liste de lignes... enfin je m'égare). Donc partons du principe qu'on a des Calendar.... Code :
Code :
Code :
__________________
N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !Et surtout
|
||||||||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2012 Messages : 58 ![]() |
Merci beaucoup nicroman. Dans un premier temps j'ai trouvé une solution dans l'attente de retravailler le code. J'ai changer mon fichier xml pour étre sur de tomber sur le bon jour.
La période va être difficile pour trouver le temps de faire mieux... mais j'écouterai vos conseils. Encore merci et que tout le monde passe de bonnes fêtes de fin d'année. |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2012 Messages : 58 ![]() |
La solution a été de mettre l'heure à 0.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com