Cioè, non è un formato supportato?Originariamente inviato da kalosjo
semplicemente "01012001" non è una data quindi il format sbaglia
01012001 per diventare 05/10/4670 come viene interpretato?
...non fraintendetemi...voglio solo capire!
Ho cercato cosa studiare...ma forse ho cercato male...help me!!!Originariamente inviato gibra
Si diventa pazzi quando ci si inventa codice astruso, e non si conoscono le 'regole della programmazione'.
Non serve alcuna nuova funzione, ci mancherebbe, con tutte quelle che esistono già.
Basta studiarne l'uso, invece di arrampicarsi sugli specchi.
Per escocat, copio/incollo il codice in vb.net che ho scritto:
Dove 'formats' è la "maschera" che contiene i formati in input, qui ti puoi sbizarrire...codice:Dim dataconv As String = TextBox_data.Text Try Dim formats As String() = New String() {"ddMMyy", "ddMMyyyy", "dd/MM/yy"} Dim result = DateTime.ParseExact(dataconv, formats, _ System.Globalization.CultureInfo.CurrentCulture, _ System.Globalization.DateTimeStyles.None) TextBox_data.Text = CStr(result) Catch ex As System.Exception 'messaggio di avviso End Try
Comunque, partendo dal presupposto di kalosjo, in VBA per ora ho scritto questo:
Il risultato è:codice:Private Sub test_data() Dim a(2) As String Dim a_out As String a(0) = "010101" a(1) = "01/01/01" a(2) = "01012001" For i = 0 To UBound(a) a_out = "" Select Case Len(a(i)) Case 6 a_out = Format(a(i), "00/00/00") a_out = Format(a_out, "dd/mm/yyyy") Debug.Print "caso 010101 : " & a(i) & " = " & a_out Case 8 If Mid(a(i), 3, 1) = "/" Then a_out = Format(a(i), "dd/mm/yyyy") Debug.Print "caso 01/01/01: " & a(i) & " = " & a_out Else a_out = Format(a(i), "00/00/0000") Debug.Print "caso 01012001: " & a(i) & " = " & a_out End If End Select Next i End Sub
caso 010101 : 010101 = 01/01/2001
caso 01/01/01: 01/01/01 = 01/01/2001
caso 01012001: 01012001 = 01/01/2001
Al codice manca la verifica se la stringa è una data valida, che ho omesso per non allungare ancora il post...
Scusate la lunghezza, l' OT in vb.net...e l' ignoranza...ringrazio per ogni parere/consiglio/spunto che mi vorrete dare.
Vincenzo



Rispondi quotando