Autore Topic: [Risolto] Gambas 3.19.1: Now() + 1 = Float  (Letto 6387 volte)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
[Risolto] Gambas 3.19.1: Now() + 1 = Float
« il: 17 Aprile 2024, 12:42:26 »
Fino alla versione 3.18.4 se aggiungevo un intero ad una data mi ritornava una data.

Adesso mi ritorna float.... Memore del topic sul Socket (https://www.gambas-it.org/smf/index.php?topic=10467.0), sono andato a vedere la guida:

Citazione
Dates are numbers
A date & time value is implicitly converted to a floating point number whose integer part is the internal date part (the number of days since the origin), and fractional part is the internal time part.

Consequently, you can easily do day arithmetic between dates using the standard + and - operators.

Quindi e' un bug o e' giusto che debba spulciare le 2200 classi del mio progetto che per la maggior parte trattano date appunto, usando la funzione DateAdd() o la conversione del risultato con CDate?
« Ultima modifica: 22 Aprile 2024, 11:33:35 da milio »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #1 il: 17 Aprile 2024, 15:35:03 »
Scusa milio ma non mi è chiaro quello che stai dicendo, se scrivo questo codice:
Codice: [Seleziona]
Public Sub Main()

  Dim n As Float = CFloat(Date(Now))
  Print CDate(n) '<--- 17/04/2024 00:00:00

End
ottengo il risultato atteso, tu cosa ottieni?

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #2 il: 17 Aprile 2024, 16:24:46 »
Codice: [Seleziona]
Public Sub Main()

  Print Now()

End

Ottengo 17/04/2024 16:23:07 (Date)

Codice: [Seleziona]
Public Sub Main()

  Print Now() + 1

End

Ottengo 2492523,59976815 (Float)

Anche qui con la versione 3.18.4 ottenevo sempre un valore di tipo Date

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #3 il: 17 Aprile 2024, 16:38:57 »
Scusa stavo scrivendoti e ho perso tutto  :-[
Come mio solito avevo capito alla rovescia, ora scrivo a Benoit e chiedo del cambiamento

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #4 il: 17 Aprile 2024, 16:54:50 »
Ti ringrazio tanto....  :2birre:

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #5 il: 17 Aprile 2024, 17:39:29 »
milio, Benoit dice che non è come sostieni:
Citazione
Ho appena provato con Gambas 3.18.4:

$ gbx3 -e "Now + 1"
2492523.64755762

Quindi per favore invia il codice che restituirebbe una data!

Benoît Minisini.

Manda del codice da fargli avere, Grazie

 :ciao:
« Ultima modifica: 17 Aprile 2024, 17:41:00 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #6 il: 17 Aprile 2024, 18:54:27 »
Sembra che Benoit abbia ragione, ho montato una 18.04.4 su una virtuale e ottengo float.
Sei sicuro di quello che hai scritto?

 :violent:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #7 il: 18 Aprile 2024, 06:49:39 »
Mi puoi eseguire questo codice sulla due versioni e vedere se sono io pazzo o no?  :rolleyes:

Codice: [Seleziona]
Public Sub Main()
 
  Dim dDate As Date
 
 
  dDate = Now()
  Print dDate
 
  dDate += 1
 
  Print dDate
 
End

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #8 il: 18 Aprile 2024, 09:49:22 »
Mi puoi eseguire questo codice sulla due versioni e vedere se sono io pazzo o no?  :rolleyes:


Si, con questo codice si ottengono risultati differenti.
L'ho scritto a Benoit, perché non lo hai passato subito?  >:( :evil:

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #9 il: 18 Aprile 2024, 10:19:54 »
Perchè?

perchè:  :-\
Codice: [Seleziona]
Public Sub Main()

  Do
    Print "Milio è un minchiosauro"
  Loop

end


Ho dato per scontato, senza provare, che la funzione Now() As Date restituisse una data e non un Float...

Comunque sia io ho sempre utilizzato una Variabile Date che poi veniva caricata con Now(), non ho mai usato la funzione Now() da sola come ho erroneamente scritto nell'esempio del primo post.

Scusate....
« Ultima modifica: 18 Aprile 2024, 10:36:46 da milio »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #10 il: 18 Aprile 2024, 10:39:17 »
 :rotfl:

... ok, ogni tanto fa bene scherzare, ma non sono d'accordo, tu per me ma credo di poter parlare a nome di tutti, sei un mentore.
Conosciamo tutti il tuo valore e siamo grati della tua partecipazione.  :ok:

 :-*


nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #11 il: 18 Aprile 2024, 11:55:30 »
I agree!
 :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #12 il: 18 Aprile 2024, 12:44:45 »
Benoit riconosce che si tratta di un bug, finalmente siamo riusciti a farci capire  :ok:
Citazione
It's a bug then. (dDate + 1) is a Float, but when assigning the result to dDate, it must be converted back to a Date automatically.

Regards,

Benoît Minisini.
:ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:Gambas 3.19.1: Now() + 1 = Float
« Risposta #13 il: 18 Aprile 2024, 13:53:30 »
 :ok:
Codice: [Seleziona]
Public Sub Main()

  Do
    Print "Milio è un minchiosauro"
    Break
  Loop

end

 ;D

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.239
  • Tonno verde
    • Mostra profilo
Re:[Risolveranno] Gambas 3.19.1: Now() + 1 = Float
« Risposta #14 il: 18 Aprile 2024, 14:14:14 »
 ;D

Per ora ti devi accontentare del fix sulla Master, che verrà riportato sulla prossima versione stabile quando uscirà.
Citazione
The fix is on master. It will be backported to the next stable version.
Codice: [Seleziona]
dDate += 1 ' <--- 19/04/2024 14:06:19

 :ciao:

P.S. Se vuoi un ripasso sulla compilazione, sono a disposizione
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro