Probléme de Date [Résolu]

floflo69290 16 Messages postés jeudi 25 juin 2009Date d'inscription 25 juin 2009 Dernière intervention - 7 janv. 2009 à 15:18 - Dernière réponse : floflo69290 16 Messages postés jeudi 25 juin 2009Date d'inscription 25 juin 2009 Dernière intervention
- 8 janv. 2009 à 11:32
Bonjour,
Je viens de reprendre une application en C# et j'ai un soucis :

Je récupére les valeurs du jour, mois et année avec des string et je voudrais retourner un format DateTime.

code :

public DateTime formatDateDefaut()
        {
            //Récupération des valeurs jour, mois et année
            String jour = this.import.laValeurChampFichier.Substring(this.import.leFormat.IndexOf('J'), this.import.leFormat.LastIndexOf('J') - this.import.leFormat.IndexOf('J') + 1);
            String mois = this.import.laValeurChampFichier.Substring(this.import.leFormat.IndexOf('M'), this.import.leFormat.LastIndexOf('M') - this.import.leFormat.IndexOf('M') + 1);
            String annee = this.import.laValeurChampFichier.Substring(this.import.leFormat.IndexOf('A'), this.import.leFormat.LastIndexOf('A') - this.import.leFormat.IndexOf('A') + 1);

            //Format de la date par défaut
            DateTime dateFormatDefaut = new DateTime(int.Parse(annee), int.Parse(mois), int.Parse(jour));
            return dateFormatDefaut;
        }

J'ai l'erreur suivante :

Les paramètres Year, Month et Day décrivent un DateTime qui ne peut pas être représenté.

Merci de laisser des réponses construite et du code pour bien expliquer.
D'avance merci.
Bye.
Flo.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
ShawiNord 2 Messages postés vendredi 16 mars 2007Date d'inscription 7 janvier 2009 Dernière intervention - 7 janv. 2009 à 17:40
3
Merci
Et bien, je bloque un poil, essaye de passer des valeurs fixes à ton DateTime (genre DateTime(1999,7,7)) en mettant et enlevant les 0, voir les cas qui marchent et ceux qui non.
Je suis désolé, je bloque Floux. Après tu peux essayer de passer un calendrier en dernier paramètre du DateTime (voir msdn) mais je suis pas convaincu que ça résoudra ton probleme.

Merci ShawiNord 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de ShawiNord
Meilleure réponse
floflo69290 16 Messages postés jeudi 25 juin 2009Date d'inscription 25 juin 2009 Dernière intervention - 8 janv. 2009 à 11:32
3
Merci
Problème résolut :


En fait pour l'année 2000, j'avais la valeur "00" pour l'année.

Donc forcément, le format DateTime ne comprend pas "00" mais
"2000"!

Il faut mettre la valeur de la date en entier.


Merci a tous pour votre aide.

Flo.

Merci floflo69290 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de floflo69290
floflo69290 16 Messages postés jeudi 25 juin 2009Date d'inscription 25 juin 2009 Dernière intervention - 7 janv. 2009 à 16:14
0
Merci
En fait je crois avoir compris le probléme :
Si j'ai un mois "06" ma valeur dans ma string est toujours "06" mais quand je la met dans un int je trouve uniquement "6".
Donc aprés j'ai tout  mes éléments décalés.

Avez vous une idée pour que les valeurs passéés en int ne suprime pas les "0" avant.

Merci.
Commenter la réponse de floflo69290
ShawiNord 2 Messages postés vendredi 16 mars 2007Date d'inscription 7 janvier 2009 Dernière intervention - 7 janv. 2009 à 16:57
0
Merci
Salut,
Je pense que ton problème ne vient pas du fait que le int perde son 0 devant, si on regarde les spec de DateTime sur msdn elles disent que le mois obtient une valeur allant de 1 à 12.
Si j'ai tout compris tu as une chaine de caractère où il y a la date et tu as une chaine de caractère indiquant le format dans lequelle elle t'es donné c'est ca?
As-tu fais un affichage de tes string, et un affichage des parsage en int pour voir ce que cela te retournais'Histoire d'être sûr que la chaine corresponde bien au format.
Commenter la réponse de ShawiNord
floflo69290 16 Messages postés jeudi 25 juin 2009Date d'inscription 25 juin 2009 Dernière intervention - 7 janv. 2009 à 17:07
0
Merci
oui j'ai mes deux chaines de caractéres :
laValeurChampFichier : pour ma date
et le format pour déterminer le jour, le mois et l'année

Mais si j'ai un date 02061999, dans chaque string ca donne :
02, puis 06 et 1999
Mais quand je passe en int, j'ai 2, puis 6 et 1999.

la chaine correspond bien au format.

Merci pour ton aide.
Commenter la réponse de floflo69290
WishhhMaster 327 Messages postés mardi 17 février 2004Date d'inscription 10 avril 2010 Dernière intervention - 7 janv. 2009 à 20:22
0
Merci
Salut,

C'est dur de dire a quoi ton format de date peut ressembler, mais essaie de faire ca

DateTime dt;

if(DateTime.TryParse(this.import.laValeurChampFichier, out dt))
{
return dt;
}
else
{
//essaie de faire marcher ta methode
}
Commenter la réponse de WishhhMaster
jytest 315 Messages postés dimanche 27 novembre 2005Date d'inscription 22 décembre 2014 Dernière intervention - 8 janv. 2009 à 05:37
0
Merci
Salut,

J'ai déjà eu ce problème en visual basic.
Lorsque mon programme tournait sur certaines machines, les dates étaient OK
Et sur d'autres, cela ne fonctionnait pas...

En fait, cela provient de tes réglages de windows (options régionales).
Alors, prends ton courage à deux mains et crée-toi une routine de "formatage" de date...

Désolé de ne pouvoir t'aider plus... mais je ne connais pas le C
Si tu le souhaites, je peux te la fournir en visual basic 6

Bon courage

jyd
Commenter la réponse de jytest
floflo69290 16 Messages postés jeudi 25 juin 2009Date d'inscription 25 juin 2009 Dernière intervention - 8 janv. 2009 à 09:00
0
Merci
[../auteur/WISHHHMASTER/231972.aspx
]
Slt les gens!



ShawiNord, quand
j'écrit en dur, ca passe!


DateTime dateFormatDefaut = new DateTime(1999, 7, 7);

Mais je pense quand clalendrier du SateTime ca va être trop galére.

WishhhMaster, ta méthode ne passe pas
il ne reconnait pas le format de date passé dans "laValeurChampFichier".



 



Je veux bien ta source en VB6, jytest, ca pourra toujours m’apprendre.



Mon adresse : floflo69290@hotmail.fr.








Merci a tous.





Je test et vous
tiens au courant.
Commenter la réponse de floflo69290
jytest 315 Messages postés dimanche 27 novembre 2005Date d'inscription 22 décembre 2014 Dernière intervention - 8 janv. 2009 à 10:59
0
Merci
ReSalut,

Avant de faire toutes ces manip, as-tu tout simplement
essayer de modifier tes "options régionales et Linguistiques" ?

Panneau de configuration > Options Régionales et linguistiques > Format > Personaliser ce format

Qu'est-ce que cela donne ?

La source en VB6, tu l'auras ce soir

jyd
Commenter la réponse de jytest

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.