begin process at 2012 02 12 11:38:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > CONVERSION D'UN STRING EN DATE SOUS UN FORMAT DONNÉ

CONVERSION D'UN STRING EN DATE SOUS UN FORMAT DONNÉ


 Information sur la source

Note :
Aucune note
Catégorie :Date & Heure Classé sous :date, string, convertir, format, texte Niveau :Débutant Date de création :10/08/2004 Date de mise à jour :21/01/2006 18:22:55 Vu / téléchargé :28 298 / 424

Auteur : Egalon

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Vous connaissez la fonction format en l'utilisant avec une date:
unString= format (unedate,"jj MM yy, hh:mm:ss" )

Ben la c'est le contraire:
uneDate= Cdate(toDate(chaine as string, monformat as string)

Cà a l'air de bien marcher, tous les formats ne sont pas acceptés, je butte un peu avec les mois écrits en lettre mais je devrais y arriver. J'attends avant tout de votre part des tests bien tordus pour évaluer cette fonction.

Actuellement, la fonction se limite à comparer la position des caractères. Cà devrait satisfaire déjà beaucoup de monde.

Source

  • Public Function toDate(chaine As String, format As String) As String
  • Dim i As Integer
  • Dim j As Integer
  • Dim car As String
  • Dim car2 As String
  • Dim annee As String
  • Dim mois As String
  • Dim moisI As Integer
  • Dim jour As String
  • Dim heure As String
  • Dim min As String
  • Dim sec As String
  • Dim datestring As String
  • Dim Lettre As Integer
  • Lettre = 0
  • i = 1
  • j = 1
  • While (i < Len(format) And j < Len(chaine))
  • car = Mid(format, i, 1)
  • Select Case car
  • Case "y"
  • annee = annee & Mid(chaine, j, 1)
  • Case "M"
  • car2 = Mid(chaine, j, 1)
  • If car2 <= "z" And car2 >= "A" And Lettre = 0 Then 'on est avec des mois sous forme de lettres
  • car2 = car
  • While (i < Len(format) And car2 = "M") 'je passe les mois dans le format
  • car2 = Mid(format, i, 1)
  • i = i + 1
  • Wend
  • i = i - 2 'c'est pour la boucle du while principal... j'ajuste
  • car2 = Mid(chaine, j, 1)
  • ' puis je cherche tous les caractères qui sont des lettres
  • While (j < Len(chaine) And car2 <= "z" And car2 > "9")
  • mois = mois & car2
  • j = j + 1
  • car2 = Mid(chaine, j, 1)
  • Wend
  • j = j - 1 'j'ajuste aussi
  • Else
  • mois = mois & Mid(chaine, j, 1) 'sinon c'est cool
  • End If
  • Case "d"
  • jour = jour & Mid(chaine, j, 1)
  • Case "h"
  • heure = heure & Mid(chaine, j, 1)
  • Case "m"
  • min = min & Mid(chaine, j, 1)
  • Case "s"
  • sec = sec & Mid(chaine, j, 1)
  • End Select
  • j = j + 1
  • i = i + 1
  • Wend
  • If Len(annee) < 2 Then
  • annee = "20" & annee
  • End If
  • If Len(annee) < 4 Then
  • annee = "2000"
  • End If
  • If Len(mois) < 2 Then
  • mois = "00"
  • End If
  • If Len(jour) < 2 Then
  • jour = "00"
  • End If
  • If Len(heure) < 2 Then
  • heure = "00"
  • End If
  • If Len(min) < 2 Then
  • min = "00"
  • End If
  • If Len(sec) < 2 Then
  • sec = "00"
  • End If
  • On Error GoTo passer
  • moisI = CInt(mois)
  • Select Case moisI
  • Case 1
  • mois = "Janv"
  • Case 2
  • mois = "Févr"
  • Case 3
  • mois = "Mars"
  • Case 4
  • mois = "Avr"
  • Case 5
  • mois = "Mai"
  • Case 6
  • mois = "Juin"
  • Case 7
  • mois = "Juil"
  • Case 8
  • mois = "Août"
  • Case 9
  • mois = "Sept"
  • Case 10
  • mois = "Oct"
  • Case 11
  • mois = "Nov"
  • Case 12
  • mois = "Déc"
  • End Select
  • passer:
  • datestring = jour & " " & mois & " " & annee & " " & heure & ":" & min & ":" & sec
  • MsgBox datestring
  • toDate = datestring
  • End Function
Public Function toDate(chaine As String, format As String) As String


Dim i As Integer
Dim j As Integer

Dim car As String
Dim car2 As String
Dim annee As String
Dim mois As String
Dim moisI As Integer
Dim jour As String
Dim heure As String
Dim min As String
Dim sec As String
Dim datestring As String
Dim Lettre As Integer
Lettre = 0
i = 1
j = 1
While (i < Len(format) And j < Len(chaine))
        car = Mid(format, i, 1)
        Select Case car
            Case "y"
                annee = annee & Mid(chaine, j, 1)
            Case "M"
                car2 = Mid(chaine, j, 1)
                If car2 <= "z" And car2 >= "A" And Lettre = 0 Then 'on est avec des mois sous forme de lettres
                    car2 = car
                    While (i < Len(format) And car2 = "M") 'je passe les mois dans le format
                        car2 = Mid(format, i, 1)
                        i = i + 1
                    Wend
                    i = i - 2 'c'est pour la boucle du while principal... j'ajuste
                    car2 = Mid(chaine, j, 1)
                    ' puis je cherche tous les caractères qui sont des lettres
                    While (j < Len(chaine) And car2 <= "z" And car2 > "9")
                        mois = mois & car2
                        j = j + 1
                        car2 = Mid(chaine, j, 1)
                        
                    Wend
                    j = j - 1 'j'ajuste aussi
                Else
                    mois = mois & Mid(chaine, j, 1) 'sinon c'est cool
                End If
            Case "d"
                jour = jour & Mid(chaine, j, 1)
            Case "h"
                heure = heure & Mid(chaine, j, 1)
            Case "m"
                min = min & Mid(chaine, j, 1)
            Case "s"
                sec = sec & Mid(chaine, j, 1)
        End Select
        j = j + 1
        i = i + 1
Wend


If Len(annee) < 2 Then
annee = "20" & annee
End If

If Len(annee) < 4 Then
annee = "2000"
End If

If Len(mois) < 2 Then
mois = "00"
End If

If Len(jour) < 2 Then
jour = "00"
End If

If Len(heure) < 2 Then
heure = "00"
End If

If Len(min) < 2 Then
min = "00"
End If

If Len(sec) < 2 Then
sec = "00"
End If


On Error GoTo passer
moisI = CInt(mois)

 Select Case moisI
        Case 1
        mois = "Janv"
        Case 2
        mois = "Févr"
        Case 3
        mois = "Mars"
        Case 4
        mois = "Avr"
        Case 5
        mois = "Mai"
        Case 6
        mois = "Juin"
        Case 7
        mois = "Juil"
        Case 8
        mois = "Août"
        Case 9
        mois = "Sept"
        Case 10
        mois = "Oct"
        Case 11
        mois = "Nov"
        Case 12
        mois = "Déc"
    End Select

passer:

datestring = jour & " " & mois & " " & annee & " " & heure & ":" & min & ":" & sec

MsgBox datestring

toDate = datestring

End Function

 Conclusion

Le Zip présente une application toute con de la fonction

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

10 août 2004 15:16:04 :
Ben voilà ca gère les mois avec des lettres. Remarquez que lorsque les ois sont en lettre le nombre de caractère M dans le format n'est plus important.
21 janvier 2006 18:22:56 :
Ajout de mot-clés pour la recherche textuelle.

 Sources du même auteur

COMPTAGE D'ÉLÉMENTS DANS UN MSHFLEXGRID
Source avec Zip CALCUL DU DÉCALAGE HEURE ÉTÉ /HIVER EN FONCTION D'UNE DATE

 Sources de la même categorie

Source avec Zip Source avec une capture LES FONCTIONS DATE PAR L'EXEMPLE. par pasquet78
Source avec Zip Source avec une capture CALENDRIER, MODE D'EMPLOI par pasquet78
Source avec Zip Source avec une capture Source .NET (Dotnet) HORLOGE DIODE AVEC 3 ALARMES ET REMISE À L'HEURE par EhJoe
Source avec Zip Source avec une capture POINTEUSE HORAIRES PAR SEMAINE par VBNoob13
Source avec Zip Source avec une capture HORLOGE À AIGUILLES SIMPLEMENT DANS UN USERFORM EXCEL par bigbe

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) CONVERTIR FORMAT IMAGE par Le Pivert
Source avec Zip Source avec une capture FORMAT DE DATE SYSTEM ET PORTABILITÉ par pillsmen
CONVERTION DE CHAMP TEXTE EN DATE par pasco05
Source avec une capture VBA EXCEL CONVERTIR EN NOMBRE, APPLIQUER UN FORMAT MONETAIRE... par FENETRES
Source avec une capture VBA EXCEL TRANSFORME UNE DATE ENREGISTRÉE AU FORMAT ANGLAIS ... par FENETRES

Commentaires et avis

Commentaire de Egalon le 10/08/2004 15:29:42

Y a juste une faute:
While (i <= Len(format) And j <= Len(chaine))
manquait les =.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Convertir données num au format texte dans un format numérique [ par Melinda ] slt, j'ai effectuer l'importation d'un fichier .txt sous Excel.j'ai des données nuérique mais celles qui sont décimales sont représentées comme des do Transformer un string en date [ par nicobou ] Bonjour,J'ai un soucis de date. Je récupére un fichier sur un site internet avec mon programme vb, et l'idée est de comparer la date de derniére modif Convertir la date de installdate en format dword en format date lisible ? [ par rastapopey ] Voila, je souhaite recuperer la date d'install d'un poste en lisant la valeur de la date d'install dans la registrySOFTWARE\MICROSOFT\WINDOWS NT\CURRE convertir texte en date [ par bossun ] salut, dans ma BD j'ai un champs texte mais écris sous cette forme 15/02/2003. j'aimerais savoir si on peut utiliser cette valeur comme étant une date convertir une date en texte: [ par yassineee ] convertir une date en texte:bonjour,l'attribut [date dt] est déclarer de type date/heure dans ma base ,et quand je récupére le contenudu champ date av Format Date, URGENT!!! [ par didi83 ] Bonjour &#224; tous, J'ai essay&#233; d'ajouter &#224; un texte la date sur access. J'ai mis setfocus ensuite je voulais mettre la date dans le texte Problème de format date [ par Herminator ] Bonjour &#224; tous, J'ai fais une connection en ADO sur un fichier .mdb (access97). J'ai un probl&#232;me pour extraire la date la plus r&#233;cente convertir une chaine en une date - complications :-s [ par youkizouki ] bonjour &#224; tous,je poss&#232;de une chaine de caract&#232;re repr&#233;sentant une date, je dois pour les besoin de mon applic comparer cette chai Convertir date français en date US [ par bonbone ] BONJOUR,J'utilise Access (VBA), j'ai créé des formulaires, dans l'un d'eux je récupére la liste de toutes les dates dans une listbox (date en format f Convertir date+heure en string vers FILETIME [ par violent_ken ] Violent Ken Bonjour, j'aimerais pouvoir convertir une string au format "DD-MM-YYYY HH:MM:SS" (ou autre, mais avec date et time dans une même s


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,103 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales