Comparer deux date sous un format un peu spécial

Signaler
Messages postés
10
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
27 mai 2007
-
Messages postés
2
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
27 mai 2007
-
Bonjour à toutes et à tous,

J'ai un petit blocage dans mon développement, je voudrais pouvoir comparer si deux dates sont équales ou une inférieur ou supérieure à l'autre. Dans ma base de données j'ai champ date en string qui sous forme moisAnnée '0207'. Je voudrais comparer ce champ à une sélections dans le DateTimePicker que je met sous la meme forme. Mais la fonction suivante ne marche pas :

        DateTimePicker1.Format = DateTimePickerFormat.Custom
        DateTimePicker1.CustomFormat = "MMyy"
        DateFormat = DateTimePicker1.Text
 If Date.Compare(DateFormat, oDataTable.Rows(i).Item("date")) = 0 Then
                MsgBox("meme date")
            End If

Pourriez-vous m'eclairer d'avantage ?

Merci d'avance pour votre aide et vos propositions !!!

8 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Si c'est pour faire une comparaison de date, pourquoi ne pas transformer ta date en string de ta base dans un format date : MMYYY ?

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
10
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
27 mai 2007

Re,

Parce que la base de donnée ne me permet pas tous les format possible !!!

n'y a t il pas un moyen de récuperer la string de la base et de la transformer en date en lui appossant ce format la et qui puissse me permettre de faire cette comparaison svp ?

Merci à toi.
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Je ne sais ce que cela vaut, mais regarde ce petit bout de code :

    Dim MyDateTable As String
    Dim MyDate As String
        
    MyDateTable = "01/07"
    MyDate = "03/07"
        
    If MyDateTable > MyDate Then MsgBox "La date de la base est supérieur !"
    If MyDateTable < MyDate Then MsgBox "La date de la base est inférieur !"
    If MyDateTable = MyDate Then MsgBox "La date de la base est égale !"

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
24
Su tu veux comparer sur uniquement le mois et l'année, 2 possibilités :


1) soit tu mets l'année suivie du mois pour les 2 valeurs et tu compares alors la valeur des chaines
ex :
"03/07"  ===>>"0703"
et "01/08"  ===>> "0801"
et "0801" est bien plus grand que "0703" (alors que "01/08" est plus petit que "03/07"

2) soit tu rajoutes "01/" aux 2 chaines et tu compares les deux dates
ex
"03/07" === "01/03/07"
et  "01/08" ==>> "01/01/08"


pour illustrer la 2ème méthode :

Private Sub Command1_Click()
  toto = "01/08"
  titi = "03/07"
  toto = "01/" & toto
  titi = "01" & titi
  MsgBox IIf(DateValue(toto) >= DateValue(titi), "toto >= titi", "toto< titi")
End Sub
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
24
corrige :
 titi = "01/" & titi
Messages postés
10
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
27 mai 2007

je te remercie pour ta réponse, je vais faire un check demain dans mon programme et voir si ca rentre dans les tests que je dois faire !!!!

Grand merci pour votre aide

Bonne soirée et bonne nuit !!!
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
24
Si ce n'est pas toi qui a décidé du format MMAA avec le millésime sur 2 chiffres uniquement, rappelle au passage à celui qui t'impose un tel format que c'était précisément ce genre de données qui préoccupait en ce qui concerne le bug 2K !!
Qui va, avec un tel format, savoir si 10 est 2010, 1910, 2110, etc ???
Les juliennes (tronquées ou non), par ailleurs , sont maintenant au format AAAAMMJJ (sans séparateujr). Dans ton cas, (julienne tronquée) ce devrait maintenant être AAAAMM pour éviter des problèmes (et non AAMM)
Quant à MMAA : c'est doublement maladroit ...
Messages postés
2
Date d'inscription
samedi 26 mai 2007
Statut
Membre
Dernière intervention
27 mai 2007

merci bcp