Autore Topic: Cdate e Date - comportamento strano  (Letto 484 volte)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Cdate e Date - comportamento strano
« il: 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?
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.311
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Cdate e Date - comportamento strano
« Risposta #1 il: 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
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re: Cdate e Date - comportamento strano
« Risposta #2 il: 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
se corri, morirai stanco (motto degli sniper)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Cdate e Date - comportamento strano
« Risposta #3 il: 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 è 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:
:ciao: