Gambas-it

Gambas3 => Programmazione => Topic aperto da: allegfede - 04 Settembre 2013, 14:01:01

Titolo: Cdate e Date - comportamento strano
Inserito da: allegfede - 04 Settembre 2013, 14:01:01
perche'

?Date(0, 0, 0, 0, 0, 1)

restituisce giustamente 00:00:01

mentre

?Date(0, 0, 0, 0, 0, 0)

restituisce il nulla?

.......

stessa cosa con cdate("00:00:01") che da' 00:00:01
mentre cdate("00:00:01") ritorna " " ?

bug?
Titolo: Re: Cdate e Date - comportamento strano
Inserito da: vuott - 04 Settembre 2013, 16:08:42
perche'
? date....

restituisce il nulla?

.......

stessa cosa con cdate....

Vorrei tentare di dare una risposta....

...dunque...perché il valore - diciamo - assimilabile a zero, per il tipo di dato Date (così come per la rispettiva funzione di conversione nel tipo temporale), è uguale a Null  (che, poi, è anche - appunto - il suo valore di default).
:-X
Titolo: Re: Cdate e Date - comportamento strano
Inserito da: allegfede - 04 Settembre 2013, 18:32:59
scomodo!

no no no ... allora VOGLIO un tipo dati TIME che abbia 00:00:00 come default!

 :P :P :P :P :P :P :P :P :P :P :P :P :P :P :P :P
Titolo: Re: Cdate e Date - comportamento strano
Inserito da: Picavbg - 06 Settembre 2013, 09:25:23
Non capisco la praticità di un utilizzo di una data espressa tutta con zeri. Potrebbe essere però una semplice curiosità.
Ritengo che Gambas si appoggi in qualche modo al kernel dove esiste definita una data assunta come epoca per il calcolo di tutte le date anteriori e posteriori ed essa. Come si può rilevare da http://en.wikipedia.org/wiki/Date_(Unix)#GNU_date_options (http://en.wikipedia.org/wiki/Date_(Unix)#GNU_date_options) è la mezzanotte UTC del 1 gennaio 1970.

Non mi azzardo a spiegarmi il motivo del mancato funzionamento formale di una condizione tendente a zero nell'utilizzo comune della funzione data e non lo considererei assolutamente un errore del linguaggio.
Secondo me, se proprio dovessi averne necessità, potresti semplicemente, nella particolare condizioni in cui si dovesse verificare l'evento, creare una costante in formato stringa del tipo
Codice: [Seleziona]
Dim Datazero As String =  "00/00/00 00:00:00"

Se invece era una semplice curiosità, ...  te la sei tolta  ;D  ;D  ;D
 :ciao: