Newsgroup: it.comp.lang.visual-basic
Titolo: date e time internazionale

Ho la necessita di settare una data in 3 formati
gg/mm/aaaa
mm/gg/aaaa
aaaa/mm/gg
 
con la funzione isdate(miotextbox)
riconosce gg/mm/aaaa  e
aaaa/mm/gg
 
ma purtroppo non riesco a fargli riconoscere il formato USA. le ho provate 
di tutte anche cambiano cultureinfo.datetimeformat
ma niente da fare.
Chi mi aiuta a risolvere il problema??? 
 

 con la funzione isdate(miotextbox)
[...]
 
Lascia stare IsDate, che è roba di compatibilità col vecchio VB e ti da poco controllo sui parametri; usa le funzioni native del framework:
 
http://msdn.microsoft.com/en-us/library/9h21f14e%28v=vs.90%29.aspx
 
e
http://msdn.microsoft.com/en-us/library/ms131044%28v=vs.90%29.aspx
 

Enzo ha pensato forte :

Curiositï¿œ:
Se l'utente scrive 01/03/2013 che giorno ï¿œ?
 
Alberto
 
 

 
 
secondo me il problema e' l'approccio: tu non devi fare una applicazione 
che tenta di *indovinare* cosa sta scrivendo l'utente.
 
nella maschera/schermata/whatever metti il campo con una didascalia che 
dice 'la data deve essere nel formato xyz'.
 
magari puoi fare in modo che il formato sia configurabile e l'utente possa 
scegliere quello che preferisce ma se vuoi un metodo affidabile per 
*indovinare* la data inserita dall'utente in formato sconosciuto non lo 
puoi trovare perche' non esiste (vedi l'esempio fatto da albe).
 
 
 
-- 
Paolo opg
 
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

E vero ma anche vero che la data 01/03/2000 scritta da albe puo essere 
interpretata in 2 modi
1 marzo e 3 gennaio a seconda del formato in uso, se europeo per la prima se 
usa per il secondo
Si in effetti la scelta da parte dell'utente di come scrivere la data c'� e 
per questo motivo, che in base alla scelta
volevo verificare la data scritta. A questo punto, esiste anche un'ulteriore 
problema
visto che la data viene inserita in un campo date di un db sql
come viene interpretata la tabella nel caso dei 2 formati???
Se scrivo in modo europeo come faccio a far leggere ad un americano la data 
in forma corretta.
Forse � questo l'approccio finale, il controllo sicuramente lo posso fare in 
fase di esecuzione
suggerendo in che modo scrivere secondo come � stato scelto di scrivere o 
con quale sistema
ma se un italiano lo scrive in modo europeo, come vado a memorizzarlo nel db 
per rendere la data
internazionale????
Grazie
 
"Paolo opg"  ha scritto nel messaggio 
news:XnsA29B918A8C9D3sp...@193.43.96.1...


 
 
 
stai facendo confusione.
 
il database contiene informazioni: come le visualizzi all'utente finale 
non riguarda il database.
 
io imposto l'applicazione per visualizzare date in formato italiano, 
inserisco in interfaccia una data con formato italiano, il programma la 
prende e salva nel database l'informazione (->>non il formato<<-).
un collega americano apre l'applicazione e avra' ragionevolmente 
selezionato un formato diverso dal mio, l'applicazione legge 
l'informazione dal database e la mostra al collega nel formato da lui 
scelto.
 
il database non c'entra con il formato; il formato e' competenza del 
frontend.
 
ovviamente il discorso regge se usi campi di tipo adeguato; se salvi una 
data in un campo testuale oppure un numero decimale in un campo float 
allora ti stai cercando rogne ma son scelte tue e non errori/limiti del 
software!
 
^_^


 come viene interpretata la tabella nel caso dei 2 formati???
 
Ma dai, non scherziamo, tu al db la data la passi per valore, mica come 
stringa localizzata.
Se poi vuoi usare una stringa Sql, la metterai nel formato Sql, che ï¿œ 
deterministicamente prefissato...
 
Oh, ragazzi, queste non sono mica questioni di vb, sono questioni di 
informatica, tipizzazione, localizzazione, che prescindono dal 
linguaggio che si utilizza, dal dbms e dal sistema operativo.
Se non si conoscono queste cose, siamo ad anni luce dal programmare, 
che ï¿œ la fase applicativa che viene DOPO la base teorica...
 
Alberto
 
 

 con la funzione isdate(miotextbox)
[...]
 
Lascia stare IsDate, che � roba di compatibilit� col vecchio VB e ti da poco 
controllo sui parametri; usa le funzioni native del framework:
 
http://msdn.microsoft.com/en-us/library/9h21f14e%28v=vs.90%29.aspx
 
e
http://msdn.microsoft.com/en-us/library/ms131044%28v=vs.90%29.aspx
 
 
Risolto perfettamente, in effetti la data seconda lo specifico cultureinfo 
viene sempre ritornata in mm/gg/aaaa
il controllo viene effettuato in base alla cultura imposta, quindi se 
"it-IT" bisogna inviare una data in formato gg/mm/aaaa
altrimenti il valore di return e false ma se la data � scritta giusta in 
ogni caso torna il forma USA
Quindi in questo caso ho risolto anche con quello da scrivere nel db, in 
fase di lettura dovrebbe essere convertito secondo
la cultura in uso in quel momento.
Spero di aver capito bene, ma da prove fatte sembra proprio cosi 
 

 la cultura in uso in quel momento.
 
Ma no ma no ma no, in fase di lettura il db ti restituisce il valore, 
che per definizione ï¿œ privo di formato...
 
Alberto