Formater des dates pour une certaine année

Résolu
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013 - 1 juin 2010 à 11:12
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013 - 1 juin 2010 à 15:33
Bonjour,

j'ai un petit problème de formatage de date. En fait, j'ai une chaine de caractère composé de 1 à 4 chiffres, suivis d'un point, ou trait, et le reste de la chaine. Cette suite de chiffres avant le point ou trait doit en fait être transformer sous forme d'année selon certaines spécifications : si cette chaine est inférieure ou égale à 10, alors on dit que ca correspond aux années 2000, sinon ca correspond aux année 1900.
Je vous donne un exemple :
0003-XXXXXX => 0003 étant <= 10, donc après formatage ça donne 2003
0926-XXXXXX => 0926 étant >= 10, donc après formatage ça donne 1926

Voilà, je n'arrive donc pas à bien formater toutes mes chaines de caractères, sachant que j'en ai à peu près 2777...

A l'origine j'avais ce code là (qui bien sur ne fonctionne pas dans tous les cas :
anneeIntermediaire = value.Substring(0, positionCaractere);
if(anneeIntermediaire.Length <= 4)
{
    if(int.Parse(anneIntermediaire) <= 10)
    {
        newValueYear = int.Parse(anneeIntermediaire).ToString("2000");
    }
    else
    {
        newValueYear = int.Parse(anneeIntermediaire).ToString("1900");
    }
}

Malheureusement, ce code ne fonctionne que pour certains cas, mais, si je reprends mon exemple de tout à l'heure, 0926 est transformé en 19926...
Donc, auriez-vous une idée pour m'aider, car je me fais taper sur les doigts depuis 2/3 jours à cause de ce problème...

Merci d'avance à ceux qui me liront et qui m'apporteront leur aide ^^

Bonne journée!!!

2 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
1 juin 2010 à 11:43
Hello,
Si j'ai bien compris, le problème se pose seulement pour le cas >10, c'est ça?

A priori, il y a 3 cas de figures:
- >10 && <100 --> rajouter 1900
- >100 && <1000 --> rajouter 1000
- > 1000 --> rajouter 0

Exemples:
- 0081-XXXXXX --> 10<81<100 --> 81+1900 = 1981
- 0981-XXXXXX --> 100<981<1000 --> 981+1000 = 1981
- 0381-XXXXXX --> 100<381<1000 --> 381+1000 = 1381 --> à voir si cela te convient
- 1234-XXXXXX --> 1000<1234 --> 1234+0 = 1234

A creuser suivant les valeurs que tu as réellement...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013
1 juin 2010 à 15:33
Salut, effectivement, ça m'a l'air pas mal comme raisonnement. Bien sûr à voir par rapport à mes valeurs, mais je prends XD ^^

Encore merci.
0
Rejoignez-nous