none
Convertir une date RRS feed

  • Question

  • Bonjour j'ai une date en format 05-févr-2009 qui provient d'un fichier Unix et je dois la convertir en format 05-02-2009. Si je fais :

    dim testDate as Date
    testDate = cdate(testDate)

    J'obtiens une erreur car 05-févr-2009 n'est pas reconnu à cause probablement du févr

    Je pourrais faire un replace("févr","02") mais je n'ai pas moyen de savoir pour les autre mois ce que va être leur abréviation.

    Merci
    lundi 9 mars 2009 18:43

Réponses

  • bon bein voilà je t'ai fait un petit code :
    Dim mois() As String = {"janvier""février""mars""avril""mai""juin""juillet""août""septembre""octobre""novembre""décembre"
     
            Dim str As String = "05-déc-2009" 
            Dim _start As Integer = 0 
            Dim _end As Integer = 0 
            Dim ret As String = vbNullString 
            Dim c As Integer = 0 
            Dim retnum As Integer = 0 
     
            For i As Integer = 1 To str.Length 
                If Mid(str, i, 1) = "-" Then 
                    If c = 0 Then 
                        _start = i 
                        c = 1 
                    Else 
                        _end = i 
                    End If 
                End If 
            Next 
            _start += 1 'equivalent de _start +1 
            _end -= _start 
            ret = Mid(str, _start, _end) 
     
            For j As Integer = 0 To mois.Length - 1 
                If Mid(mois(j), 1, ret.Length) = ret Then 
                    retnum = j + 1 
                End If 
            Next 
            MessageBox.Show(str.Replace(ret, retnum)) 

    Normalement il fonctionnera j'ai fait l'essai il n'y a que juin-juillet qui ont les 3 premiers caractère et mars-mai qui ont les 2 premiers j'en déduit qu'ils ont du mettre le moi sur 4 caractères

    c'est à toi de l'adapter et de modifier si besoin si il y a un problème poste un message
    amicalement :)
    mardi 10 mars 2009 17:48

Toutes les réponses

  • Bonjour,
    Regarde sur les mois antérieur, à mon avis ils ont tous la même taille à cause du moi de juin-juillet car les 3 premières lettres sont identiques, sinon le plus simple et de faire un tableau de date allant de 0 à 11 avec les mois en entier,
    ensuite tu va utiliser le caractère "-" comme séparateur et récupérer ce qu'il y a entre et le comparer à ton tableau de mois et en suite soit tu fais replace ou mieux redéfinir ta date avec le numéro du row de ton tableau.
    mardi 10 mars 2009 17:26
  • bon bein voilà je t'ai fait un petit code :
    Dim mois() As String = {"janvier""février""mars""avril""mai""juin""juillet""août""septembre""octobre""novembre""décembre"
     
            Dim str As String = "05-déc-2009" 
            Dim _start As Integer = 0 
            Dim _end As Integer = 0 
            Dim ret As String = vbNullString 
            Dim c As Integer = 0 
            Dim retnum As Integer = 0 
     
            For i As Integer = 1 To str.Length 
                If Mid(str, i, 1) = "-" Then 
                    If c = 0 Then 
                        _start = i 
                        c = 1 
                    Else 
                        _end = i 
                    End If 
                End If 
            Next 
            _start += 1 'equivalent de _start +1 
            _end -= _start 
            ret = Mid(str, _start, _end) 
     
            For j As Integer = 0 To mois.Length - 1 
                If Mid(mois(j), 1, ret.Length) = ret Then 
                    retnum = j + 1 
                End If 
            Next 
            MessageBox.Show(str.Replace(ret, retnum)) 

    Normalement il fonctionnera j'ai fait l'essai il n'y a que juin-juillet qui ont les 3 premiers caractère et mars-mai qui ont les 2 premiers j'en déduit qu'ils ont du mettre le moi sur 4 caractères

    c'est à toi de l'adapter et de modifier si besoin si il y a un problème poste un message
    amicalement :)
    mardi 10 mars 2009 17:48
  • Merci beaucoup, je vais essayer ça!

    mardi 10 mars 2009 19:29