Newsgroup: it.comp.lang.visual-basic
Titolo: ?Format("29/29/03","dd/mm/yyyy")=29/29/2003

E' normale?!?
Su che pianeta ci sono almeno 29 mesi? E c'e' una funzione per 
convertire i mesi oltre il dodicesimo nel formato testuale? (es 1 
gennaio, 2 febbraio, ..., 29 !@#$%^&*)
:-)
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 maxx
Lascia stare. Stai appicciando un fiammifero...

 gennaio, 2 febbraio, ..., 29 !@#$%^&*)
E poi, visto il subject, ti va sin troppo bene.
Hai chiesto un format, mica una verifica.
La formattazione che riporti nel subject è perfetta. No?!

 gennaio, 2 febbraio, ..., 29 !@#$%^&*)
Da quando in qua in VB le date si scrivono con gli apici "?
Siccome Format$ chiede una 'expression', sei sicuro che la tua stringa venga
convertita in date prima di essere formattata?
Alberto
-- 
Rigore è quando arbitro fischia

 gennaio, 2 febbraio, ..., 29 !@#$%^&*)
Si, è normale, non puoi mica pretendere che Vb dato che gli passi una data
del cribbio, si inventi una data giusta in base al valore che tu hai
passato.
prima del format controlla la data con la funzione isdate.
Attento perchè alcuni casi nella isdate non sono contemplati, per cui ti
conviene crearti una tua isdate ad hoc.

 convertita in date prima di essere formattata?
non è quello il problema... se passasse la data senza apici Vb farebbe le
divisioni....
 ?Format(29/29/03,"dd/MM/yyyy")
30/12/1899
Ovvero....
? 29/29/03
 0,333333333333333
 ?Format(0,333333333333333,"dd/MM/yyyy")
30/12/1899
-- 
MasterDavidex
23 - 118 - RA
Bmw 4Ever

Il 02/10/2003 15.03, David Ruscelli (NBook) scrisse:

Credo che Albe intendesse che come argomento di format deve essere 
passata una data, convertita con cdate ad esempio, e non una stringa.
Cio' che mi turba del risultato e' che nella guida l'argomento e' 
descritto come qualsiasi espressione valida, ma se non e' valida se ne 
frega.
Non mi sognerei mai di far arrivare in quel punto una data non valida ...
Il post era piu' una ulteriore segnalazione della pericolosita' delle date!
ciao


 farebbe le divisioni....
Ehm, veramente in VB le date si digitano con i cancelletti #.
Ciao
Alberto

 Ehm, veramente in VB le date si digitano con i cancelletti #.
Ottima osservazione....
 ?Format(#29/09/03#,"dd/MM/yyyy")
"Previsto espressione!"
 ?Format(#29/01/03#,"dd/MM/yyyy")
03/01/2029
LOL
Col cancelletto mi sa che si aspetta le date formattate in un certo modo...

 E' normale?!?
No, dovrebbe valere "29/29/03" e non 29/29/2003
Comunque hai formattato una stringa in formato "dd/mm/yyyy" (che non è una
data ma una formattazione).
Lo stesso otterresti con:
?Format("29/29/03","ww/yy/xxxx")
Diversamente con
?Format(cdate("29/29/03"),"dd/mm/yyyy")
vieni avvertito giustamente dell'incongruenza.
termoPilucco.

 wrote in message
news:blh6jp$bl3jd$2...@ID-97197.news.uni-berlin.de...


 modo...
Diciamo che col cancelletto si aspetta una data o un'ora, mentre con gli
apici io posso anche scrivere "pippo e pluto" che è comunque una
'expression'.
Ciao


 Il post era piu' una ulteriore segnalazione della pericolosita' delle
date!
O meglio delle stringhe.
Le date sono semplici numeri double che contano i giorni (e le parti di
giorno) con lo zero centrato alla data 30/12/1899 ora 00.00.00
In fase di visualizzazione basta utilizzare format per avere il formato
desiderato.
In fase di acquisizione bisogna prestare un po' di attenzione e decidere a
priori se affidarsi alle conversioni implicite dipendenti dal sistema
(cdate) o assumere un formato fisso e creare un funzione di parsing.
In entrambi i casi bisogna fare i controlli del caso.
Fatto ciò non c'è alcun problema.
termoPilucco.

<skerzo>
Azz..... che droghe girano dalle tue?
Format("29/29/03","dd/mm/yyyy")=29/29/2003
se gli dai in input una data sbagliata, ovvio che te la formatta... che vuoi
che ti si impianti il sistema e che comincino a suonare gli allarmi?
</skerzo>
Sta a te dargli un parametro corretto da formattare... se prendi un obj di
tipo data non ti permette di fare 29/29/03, da stringa si... Lui formatta
quello che gli dai, non si preoccupa di controllare....
Ciao Olix

Il 02/10/2003 15.03, Olix scrisse:

Rispondo un po' a tutti per controbattere questa argomentazione dello 
"sta a me prendere, fare e disfare". Se nel serbatoio dell'auto metto 
zucchero invece di benzina qualcosa succede, anche senza prima eseguire 
CBenz(zucchero).
Cio' che viene spontaneo fare quando si utilizza la funzione Format e' 
presumere che se utilizzo come parametri di formattazione d, m o y sia 
scontato che l'espressione debba essere una data.
Non mi venite a raccontare che vi sembra ovvio che
format("zucchero","dd/mm/yyyy") restituisca "zucchero" perche' lo 
zucchero non e' una data.
E nella guida non si dice nulla a proposito di questo comportamento!
ciao


 E nella guida non si dice nulla a proposito di questo comportamento!
Sulla guida non dissento. C'è un sacco (per davvero) di roba, ma quando hai
la sensazione di averla letta (più volte) tutta, hai anche l'impressione che
manchino le cose più importanti, già, proprio quelle che servono e che non
sai già. Sarà pure Ms-Style, ma forse, con obiettività, è anche solo
ovvio...
No, emmexx, per quanto io sia critico e bastardo, per me Format vuol solo
dire "formatta". Non spenderei un cent per scommettere che deve voler dire
anche "controlla"
Questo per risponderti, ma, se può consolarti, la mia funzione per
formattare le date spara fuori un errore rosso e grosso (è un comunista che
ha mangiato tanti bambini) e impianta tutto l'applicativo!
I motivi (dei quali non mi preoccupo più di tanto) sono due:
1) la funzione la chiamo solo io e se sbaglio a passarle i parametri (già
controllati dall'input dell'operatore) la colpa è solo mia
2) non ho mai avuto voglia (tempo sì) di mettere un controllo d'errore.
Visto il punto 1, a che sarebbe servito?

 
Nemmeno io, ma da una funzione a cui passi roba del tipo
"gennaio - 1, 15" e ti spara fuori una data ragionevolmente corretta un 
minimo di controllo ci si aspetta che ci sia.
Voglio ancora chiarire che io non uso format passando espressioni non 
valide, stavo solo cercando un modo per individuare date non valide 
(vedi mio thread precedente) e mi sono imbattuto nella "stranezza" del 
subject.


 subject.
Sě, era chiaro, tant'č che ti ho anche scritto come mi comporto io quando
alla mia funzione di formattazione date arriva porcheria.