Italian Confrontare due stringhe come se fossero due date

StefanoTag

Active Member
Licensed User
Longtime User
Salve! Qualcuno può suggerirmi come sia possibile trasformare due stringhe in date e poi confrontarle tra loro nel formato data? Mi spiego meglio: io ho stringa1="12-09-2016" e stringa2="13-09-2016", come faccio a trasformarle in due date e rendere possibile che il confronto stringa2 > stringa1 mi restituisca "true"? Grazie in anticipo
 

Gianni M

Well-Known Member
Licensed User
Longtime User
devi "girare" la data nel formato aaaa-mm-gg . In questo modo puoi effettuare il confronto.
Esempio:
2016-09-13 è maggiore di 2016-09-12
2016-01-31 è minore di 2016-12-03

diversamente avresti:
13-09-2016 maggiore di 12-09-2016 (esatto)
31-01-2016 maggiore di 03-12-2016 (errato)
 
Last edited:

StefanoTag

Active Member
Licensed User
Longtime User
Grazie Gianni di questo suggerimento, ma come faccio ad applicare il formato DateTime.DateFormat = "yyyy-MM-dd" alle due stringhe? In pratica, come faccio a convertire le due stringhe in un formato data compatibile con quel formato...scusa la banalità della domanda, ma è tutto il pomeriggio che mi aggroviglio con 'datetime' e 'dateparse' ma non ci levo le gambe...
 

Gianni M

Well-Known Member
Licensed User
Longtime User
ciao Stefano,
quando e come sono valorizzate le due stringhe? forse da un input utente in due caselle di testo ? le estrai da un database ?
 

StefanoTag

Active Member
Licensed User
Longtime User
...stringa1 la estrapolo da un file csv e stringa2 proviene da una casella di testo
 

Gianni M

Well-Known Member
Licensed User
Longtime User
puoi procedere in due modi diversi:
1) estraendo il gg , mm , aaaa con SubString2 e costruisci una nuova stringa nel formato aaaa-mm-gg ... ma poco simpatico
2) convertendo la data dal formato stringa "gg-mm-aaaa" in formato Long
B4X:
DateTime.DateFormat="dd-MM-yyyy": ' perchè nel tuo esempio hai inidcato il segno -
Dim L1 , L2 AS Long
L1=DateTime.DateParse(Stringa1)
L2=DateTime.DateParse(Stringa2)
'a questo punto puoi confrontare il valore di L1 rispetto al valore di L2
IF L1 > L2 THEN
 .......
ELSE
 ..........
END IF
 

LordZenzo

Well-Known Member
Licensed User
Longtime User
puoi procedere in due modi diversi:
1) estraendo il gg , mm , aaaa con SubString2 e costruisci una nuova stringa nel formato aaaa-mm-gg ... ma poco simpatico
2) convertendo la data dal formato stringa "gg-mm-aaaa" in formato Long
togli pure il modo 1, il modo corretto e' il secondo, controllando forse se sia corretto usare il segno '-' piuttosto che il segno '/' o '\'
 

StefanoTag

Active Member
Licensed User
Longtime User
L'esempio di Gianni funziona perfettamente!
Dopo una domenica pomeriggio di prove sono contento d'esser giunto a questa conclusione!
Un grazie sincero a Gianni e a Lorenzo...mi sa che dovrò studiare ancora un bel pò...
 
Top