Gambas-it

Gambas3 => Programmazione => Topic aperto da: pirandello - 03 Novembre 2010, 13:08:32

Titolo: Formato data [RISOLTO]
Inserito da: pirandello - 03 Novembre 2010, 13:08:32
Salve, mentre tiravo giù un form uno dei controlli (textbox) volevo che definisse una data nel seguente formato "dd/mm/yyyy" ma sono incappato nell'errore che se entro ed esco ogni volta dal controllo mi inverte il mese ed il giorno, cioè se io scrivo 02/09/1964 come rientro ed esco ottengo 09/02/1964
Questo il codice:

Public Sub txt_data_nascita_LostFocus()
    Dim dtesto As Date
    dtesto = txt_data_nascita.Text
    If IsDate(dtesto) Then  
        txt_data_nascita.text = Format(dtesto, "dd/mm/yyyy")
    Else
        txt_data_nascita.text = ""
    Endif
Catch
  Message.Info(Error.Text & " - " & Error.where)
  txt_data_nascita.text = ""
End

Avete delle soluzioni?
PS: il controllo valuebox non mi piace
Titolo: Re: Formato data
Inserito da: Picavbg - 03 Novembre 2010, 16:59:48
 Qui  (http://gambasdoc.org/help/lang/date) puoi trovare il corretto fornato della data riconosciuto da Gambas.
Ciao
Titolo: Re: Formato data
Inserito da: pirandello - 03 Novembre 2010, 22:20:15
Grazie per il link, ma io come lo risolvo l'enigma?
Mi spiego se io entro nel controllo la prima volta il giorno mi sui trasforma in mese e la seconda volta lo stesso valore mi diventa giorno: nessuno ha qualche idea?
Titolo: Re: Formato data
Inserito da: leo72 - 03 Novembre 2010, 23:18:52
Temo che sia per il fatto che internamente Gambas tratti le date con il formato americano, che è appunto MM/GG/AAAA e non con quello italiano che è GG/MM/AAAA.

Purtroppo con le date ci sono questi problemi.
L'unica soluzione che al momento mi può venire in mente è quella di provare con:
Codice: gambas [Seleziona]

Dim Temp AS Date
Dim Temp2 AS String
  Temp = CDate(txt_data_nascita.text)
  Temp2 = Day(Temp) & "/" & Month(Temp) & "/" & Year(Temp)
  txt_data_nascita.text = Temp2

Titolo: Re: Formato data
Inserito da: pirandello - 04 Novembre 2010, 00:45:14
Temo che sia per il fatto che internamente Gambas tratti le date con il formato americano, che è appunto MM/GG/AAAA e non con quello italiano che è GG/MM/AAAA.

Purtroppo con le date ci sono questi problemi.
L'unica soluzione che al momento mi può venire in mente è quella di provare con:
Codice: gambas [Seleziona]

Dim Temp AS Date
Dim Temp2 AS String
  Temp = CDate(txt_data_nascita.text)
  Temp2 = Day(Temp) & "/" & Month(Temp) & "/" & Year(Temp)
  txt_data_nascita.text = Temp2


Anch'io avevo avuto la stessa idea ma pensavo che ci fosse una soluzione più semplice da usare, vuol dire che per adesso mi adeguerò.
Comunque un grazie x la dritta.
PS: per G3 non si prevedono a breve aggiornamenti?
Titolo: Re: Formato data
Inserito da: Picavbg - 04 Novembre 2010, 00:52:09
Come certamente saprai, esistono diversi criteri per arrivare allo stesso risultato. Io utilizzo, una volta certo che l'input sia stato correttamente come data,  qualcosa di questo tipo:
Codice: gambas [Seleziona]
$StriMia=TextBox.Text   '    (GGmmAAAA)
$StriMia = Mid($_StriMia, 5, 2) & "/" & Right($_StriMia, 2) & "/" & Left($_StriMia, 4)
d_Data = CDate($_StriMia)

Ciao.

Titolo: Re: Formato data
Inserito da: Ceskho - 04 Novembre 2010, 01:40:08
PS: per G3 non si prevedono a breve aggiornamenti?

Esistono sezioni per discutere di ciò...qui si chiede aiuto tecnico circa i propri problemi......
Titolo: Re: Formato data
Inserito da: pirandello - 04 Novembre 2010, 02:22:14
PS: per G3 non si prevedono a breve aggiornamenti?

Esistono sezioni per discutere di ciò...qui si chiede aiuto tecnico circa i propri problemi......

Hai ragione, chiedo venia..
Titolo: Re: Formato data
Inserito da: pirandello - 04 Novembre 2010, 02:24:10
Come certamente saprai, esistono diversi criteri per arrivare allo stesso risultato. Io utilizzo, una volta certo che l'input sia stato correttamente come data,  qualcosa di questo tipo:
Codice: gambas [Seleziona]
$StriMia=TextBox.Text   '    (GGmmAAAA)
$StriMia = Mid($_StriMia, 5, 2) & "/" & Right($_StriMia, 2) & "/" & Left($_StriMia, 4)
d_Data = CDate($_StriMia)

Ciao.

E' una soluzione simile a quella proposta da leo72, comunque entrambi sono valide.
Grazie