bonjour,
Est ce qu'il est possible de convertir une variable chaine 'aaaammdd' en variable date sous une forme plus logique dd/mm/aaaa ?
A+
bonjour,
Est ce qu'il est possible de convertir une variable chaine 'aaaammdd' en variable date sous une forme plus logique dd/mm/aaaa ?
A+
Bonjour,
Pour convertir une chaîne en TDateTime tu peux utiliser la fonction StrToDateTime.
salut,
oui mais j'ai l'impression que cette fonction ne fonctionne seulement si la chaine contient des séparateurs. Alors que dans mon cas tous ce tient ?
A+
En fait la version par défaut utilise les paramètres régionaux de Windows, donc s'attend à recevoir une date au format chaîne identique à celui définit par tes préférences.
Si tu veux utiliser un format autre, tu dois renseigner un record de type TFormatSettings avec le format souhaité et le passer en paramètre de StrToDateTime.
Salut
Primo, une date au sens de Delphi n'a pas de format intrinsèque, le format est juste une représentation. Rappel : Les dates sont des données binaires plus précisément un nombre de jours depuis une date de référence, ce qui permet une simplification des calculs du type nombre de jours entre deux dates...
Ton problème est d'une simplicité enfantine, je pense que si tu avais réfléchis un peu plus, tu aurais trouvé. Tu disposes d'une chaîne de 8 caractères, les 4 premiers sont l'année, les deux suivants sont le mois et les deux derniers sont le jour dans le mois. Il te suffit donc de récupérer chacune des composantes (fonction copy), de convertir chacune de ces composantes en type Word et enfin de convertir à l'aide EncodeDate les composantes en une date binaire.
En espérant t'avoir dépanné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 uses SysUtils; .... procedure AAAAAMMDDToDate(const Value: String): TDateTime; begin try // Notation plus compacte que les explications // tout est fait en une seule instruction. Result := EncodeDate( StrTotInt(Copy(Value, 1, 4), // Année StrTotInt(Copy(Value, 5, 2), // mois StrTotInt(Copy(Value, 7, 2) // jour ); except raise Exception.CreateFmt('Date incorrecte "%s"', [Value]); end; End; ... // pour l'emploi... ShowMessage(DateToStr(AAAAAMMDDToDate('20090330')));
Cdlt
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager