Gestion de date

Contenu du snippet

Bonjour à tous,

Voila, dévellopant un Répertoire d'adresse SQL que je voudrais le plus pratique possible, je me suis rendu compte que la saisie des dates (de naissance en l'occurence)pouvait être vite pénible par la nécessité de respecter un format xx/xx/xx ou xx/xx/xxxx avec les séparateurs.

J'ai donc dévelloper une fonction (niveau débutant, que je suis)qui assure un format identique quelques soit la saisie,donc:

un 22?10@1972 ou 22101972 donnera 22/10/1972
un 22a10%72 ou 221072 donnera 22/10/72

Voilà

Source / Exemple :


Function ConverDate(DateN As String) As String

Dim LongN As Integer
Dim Index As Integer
Dim Coupe As String
Dim DNais As String

LongN = Len(DateN)
If LongN = 0 Then Exit Function

' On ne retient que les chiffres
    For Index = 1 To LongN
        'On extrait un caractere
        Coupe = Right(DateN, 1)
         'on verifie qu'il s'agit d'un chiffre
        If Asc(Coupe) > 47 And Asc(Coupe) < 58 Then
            DNais = Coupe & DNais
        End If
        'on soustrait le caractere extrait
        DateN = Left(DateN, LongN - Index)
    Next Index
    
' On verifie le format du resultat '*******************
LongN = Len(DNais)
If LongN = 6 Then               ' format 22/10/72
    GoTo Reconstruction6
Else
    If LongN = 8 Then
        GoTo Reconstruction8    ' format 22/10/1972
    Else
        GoTo erreur
    End If
End If

Reconstruction6: 'pour les date au format 01/01/01*******************
    DateN = ""
    For Index = 2 To LongN Step 2
        'On extrait deux caracteres
        Coupe = Right(DNais, 2)
        If Len(DateN) < 2 Then
            'On recontruit l'année au format voulu
            DateN = Coupe
        Else
        If Len(DateN) = 2 Then         'Gestion du mois
                If Val(Coupe) = 0 Or Val(Coupe) > 12 Then GoTo erreur
                'On recontruit le mois
                DateN = Coupe & "/" & DateN
            Else                       'Gestion du jour
                If Val(Coupe) = 0 Or Val(Coupe) > 31 Then GoTo erreur
                'On recontruit le jour
                DateN = Coupe & "/" & DateN
            End If
        End If
        'on supprime de la date source la partie extraite
        DNais = Left(DNais, LongN - Index)
    Next Index
ConverDate = DateN

Exit Function

Reconstruction8: 'pour les date au format 01/01/1901 ***************
    DateN = ""
    For Index = 2 To LongN Step 2
        'On extrait deux caracteres
        Coupe = Right(DNais, 2)
        If Len(DateN) < 4 Then
            'On recontruit l'année au format "1990"
            DateN = Coupe & DateN
        Else
            If DateN > Year(Date) Then GoTo erreur2
            If Len(DateN) = 4 Then 'Gestion du mois
                If Val(Coupe) = 0 Or Val(Coupe) > 12 Then GoTo erreur
                'On recontruit le mois
                DateN = Coupe & "/" & DateN
            Else                                    'Gestion du jour
                If Val(Coupe) = 0 Or Val(Coupe) > 31 Then GoTo erreur
                'On recontruit le jour
                DateN = Coupe & "/" & DateN
            End If
        
        End If
        'on supprime de la date source la partie extraite
        DNais = Left(DNais, LongN - Index)
    Next Index
'On renvoi le resultat
ConverDate = DateN

Exit Function
erreur: '************************************************************
erreur = MsgBox("Le format de la date n'est pas valide.")
erreur2: '***********************************************************
erreur2 = MsgBox("Ce jour n'est pas encore arrivé.")

End Function

Conclusion :


Voila,

C'est la premiere source que je poste, n'hésitez pas à être critique, et me dire comment vous auriez géré ou amélioré ça.

J'attends vos avis ...

A voir également

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.

Du même auteur (jimy neutron)