1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| ' La liste des valeurs que l'on a en source, et que l'on va retraiter
' avant de les convertir
Dim originalValues = New List(Of String)(New () {"2h", "12heures"})
' La liste des valeurs à convertir
Dim valuesToConvert = New List(Of String)()
' La liste des valeurs converties (le résultat)
Dim convertedValues = New List(Of String)()
' Pour chacune des valeurs d'origine...
originalValues.ForEach(Function(val) Do
' On extrait les entiers à l'aide d'une expression régulière
Dim matches = Regex.Matches(val, "\d+")
If matches.Count > 0 Then
' Pour chacun des entiers...
For Each match As var In matches
Dim matchValue = match.ToString()
' Si on a un seul chiffre, on rajoute un zéro devant
If matchValue.Length = 1 Then
matchValue = "0" + matchValue
End If
' On ajoute la valeur à la liste des valeurs que l'on va convertir
valuesToConvert.Add(matchValue)
Next
End If
End Function)
' Pour chacune des valeurs à convertir...
valuesToConvert.ForEach(Function(value) Do
' On parse la valeur avec le format de notre choix (ici HH)
Dim parsed = DateTime.ParseExact(value, "HH", CultureInfo.InvariantCulture)
' On reformate notre valeur parsée pour obtenir l'affichage souhaité
Dim result = parsed.ToString("HH:mm")
' Puis on ajoute la valeur reformatée dans la liste des résultats
convertedValues.Add(result)
End Function)
' Pour chacun des résultats...
convertedValues.ForEach(Function(result) Do
' On affiche une ligne dans la console
Console.WriteLine(result)
End Function)
' Hack pour éviter que la console ne se ferme directement
Console.ReadKey() |