OVH Cloud OVH Cloud

masked textbox et date??

4 réponses
Avatar
HeLioZz
bonjour a tous !
voila enfaite j ai un souci avec la date et un masked textbox

il me dit : Conversion from string "00/00/0000" to type 'Date' is not valid.

je ne connais pas trop et je ne sais comment regler ceci!
je ne sais pas comment faire pour pouvoir comparer la date dans mon masked
textbox et la date du jour!
si quelqu un pouvais m aider ce serait sympa!
merci d avance

4 réponses

Avatar
Julien
Vous pouvez essayer par exemple de découper votre chaîne avec un
split pour récupérer trois entiers, puis créer une instance de date
: dim d as new Date(annee as integer, mois as integer, jour as integer)
ou qqch comme ça je crois ...
Avatar
HeLioZz
pourriez vous etre plus explicite...?je suis un peu perdu....

"Julien" a écrit :

Vous pouvez essayer par exemple de découper votre chaîne avec un
split pour récupérer trois entiers, puis créer une instance de date
: dim d as new Date(annee as integer, mois as integer, jour as integer)
ou qqch comme ça je crois ...




Avatar
Julien
Vous devriez éviter d'entrer directement une valeur de type String
dans une instance de type Date.

Je vous conseille de créer une instance de type Date à partir de la
chaîne que vous récupérez. Il existe une méthode appelée Split qui
peut découper votre chaîne d'entrée selon un séparateur spécifi é
et qui retourne un tableau de chaînes (voir MSDN library pour plus de
détails sur la fonction Split).
Ex :

dim s as string = "12/34/5678"
dim tableauDeChaines as string()
tableau = Split(s, "/")

on aura ici dans le tableau tableauDeChaines trois éléments :
tableau(0) vaut "12";
tableau(1) vaut "34";
tableau(2) vaut "5678";

Vous avez ainsi séparé le jour, la date et le mois en trois chaînes
distinctes. Vous constatez qu'il n'est pas difficile de convertir ces
trois chaînes en trois valeurs entières :

dim leJour as Integer = tableau(0)
dim leMois as Integer = tableau(1)
dim lAnnee as Integer = tableau(2)

vous pouvez ainsi créer une nouvelle instance de Date car la classe
Date possède un constructeur qui accepte 3 entiers en paramètres: le
jour, le mois et l'année. De cette façon :

dim maDate as new Date(leJour, leMois, lAnnee)

vous avez ainsi une date appelée maDate possédant un format correct.
Vous pouvez donc comparer grâce aux méthodes de la classe Date (voir
MSDN Library) votre date à la date du jour (qui doit être accessible
de mémoire avec Date.Today() je pense).

Julien
Avatar
HeLioZz
merci bcp pour tout !

"Julien" a écrit :

Vous devriez éviter d'entrer directement une valeur de type String
dans une instance de type Date.

Je vous conseille de créer une instance de type Date à partir de la
chaîne que vous récupérez. Il existe une méthode appelée Split qui
peut découper votre chaîne d'entrée selon un séparateur spécifié
et qui retourne un tableau de chaînes (voir MSDN library pour plus de
détails sur la fonction Split).
Ex :

dim s as string = "12/34/5678"
dim tableauDeChaines as string()
tableau = Split(s, "/")

on aura ici dans le tableau tableauDeChaines trois éléments :
tableau(0) vaut "12";
tableau(1) vaut "34";
tableau(2) vaut "5678";

Vous avez ainsi séparé le jour, la date et le mois en trois chaînes
distinctes. Vous constatez qu'il n'est pas difficile de convertir ces
trois chaînes en trois valeurs entières :

dim leJour as Integer = tableau(0)
dim leMois as Integer = tableau(1)
dim lAnnee as Integer = tableau(2)

vous pouvez ainsi créer une nouvelle instance de Date car la classe
Date possède un constructeur qui accepte 3 entiers en paramètres: le
jour, le mois et l'année. De cette façon :

dim maDate as new Date(leJour, leMois, lAnnee)

vous avez ainsi une date appelée maDate possédant un format correct.
Vous pouvez donc comparer grâce aux méthodes de la classe Date (voir
MSDN Library) votre date à la date du jour (qui doit être accessible
de mémoire avec Date.Today() je pense).

Julien