Gambas-it

Gambas3 => Segnalazione bug => Topic aperto da: milio - 17 Aprile 2024, 12:42:26

Titolo: [Risolto] Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 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 (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?
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 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:
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 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
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 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:
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 17 Aprile 2024, 16:54:50
Ti ringrazio tanto....  :2birre:
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 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:
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 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:
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 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
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 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:
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 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....
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 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:

 :-*


Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: kicco - 18 Aprile 2024, 11:55:30
I agree!
 :)
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 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:
Titolo: Re:Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 18 Aprile 2024, 13:53:30
 :ok:
Codice: [Seleziona]
Public Sub Main()

  Do
    Print "Milio è un minchiosauro"
    Break
  Loop

end

 ;D
Titolo: Re:[Risolveranno] Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 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
Titolo: Re:[Risolveranno] Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 18 Aprile 2024, 14:23:49
Siccome ho 35 pc da aggiornare, pensavo di aspettare i pacchetti sul server ppa.

Oppure, visto questi problemi, sarebbe bene che mi faccia io un server interno per caricare eventuali pacchetti modificati...

O, terza opzione, esiste un repository con pacchetti .deb e versione 'di giornata'?
Titolo: Re:[Risolto con versione 3.19.2] Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 18 Aprile 2024, 14:36:33
Immaginavo che fossero tanti i pc da aggiornare.
Il PPA con la versione master è disponibile dopo 24 ore dal fix.
Non sapendo come sei organizzato, ho accennato alla compilazione più che altro nel caso tu fossi stato interessato a ritornare alla versione precedente.
Ma penso che tu abbia un backup  :)

 :ciao:
Titolo: Re:[Risolto con versione 3.19.2] Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 18 Aprile 2024, 15:26:37
Immaginavo che fossero tanti i pc da aggiornare.
Il PPA con la versione master è disponibile dopo 24 ore dal fix.

Vuoi dire che domani se do un sudo apt-get install gambas3 mi aggiornera' i pacchetti?


Non sapendo come sei organizzato, ho accennato alla compilazione più che altro nel caso tu fossi stato interessato a ritornare alla versione precedente.
Ma penso che tu abbia un backup  :)

 :ciao:

No   :nonono: :hatecomputer: :hatecomputer: :rotfl: :rotfl: :rotfl: :rotfl:

Comunque la versione 3.19.2 e' solo sul mio pc....  Mi son fermato alla prima installazione per fortuna
Titolo: Re:[Risolto con versione 3.19.2] Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 18 Aprile 2024, 15:41:49
Immaginavo che fossero tanti i pc da aggiornare.
Il PPA con la versione master è disponibile dopo 24 ore dal fix.

Vuoi dire che domani se do un sudo apt-get install gambas3 mi aggiornera' i pacchetti?
No, no, non volevo creare confusione gli aggiornamenti avvengono in base a come hai configurato il sistema operativo, esattamente come tutti gli altri aggiornamenti.
Naturalmente, come è normale, tu e gli altri del tuo ufficio ricevi gli aggiornamenti dal PPA della stabile (ppa:gambas-team/gambas3)
Per ricevere aggiornamenti dal PPA della master occorre aver installato il PPA della master (ppa:gambas-team/gambas-daily) cosa sconsigliabile visto che viene aggiornato in continuazione e è molto instabile, non adatto a chi con Gambas ci lavora.
Te ne ho parlato solo perché avevi accennato a un server particolare...
Citazione


Non sapendo come sei organizzato, ho accennato alla compilazione più che altro nel caso tu fossi stato interessato a ritornare alla versione precedente.
Ma penso che tu abbia un backup  :)

 :ciao:

No   :nonono: :hatecomputer: :hatecomputer: :rotfl: :rotfl: :rotfl: :rotfl:

Comunque la versione 3.19.2 e' solo sul mio pc....  Mi son fermato alla prima installazione per fortuna

e volendo puoi anche tornare sui tuoi passi  :ciao:
Titolo: Re:[Risolto con versione 3.19.2] Gambas 3.19.1: Now() + 1 = Float
Inserito da: milio - 22 Aprile 2024, 11:33:16
Piccolo aggiornamento: ho inglobato dentro la funzione CDate() tutte le parti di codice dove utilizzavo il segno aritmetico per aggiungere o diminuire di un giorna le date.
Per aggiornare il tutto mi sono fatto una piccola utility che mi va a spulciare tutto il codice e mi ritorna classe riga e testo dove ho fatto operazioni con le date

Metto risolto anche se il bug c'e' ancora..

Grazie mille Gianluigi
Titolo: Re:[Risolto] Gambas 3.19.1: Now() + 1 = Float
Inserito da: Gianluigi - 27 Aprile 2024, 22:26:40
Piccolo aggiornamento anche da parte mia.
Gli ultimi fix fra cui quello trattato qui, stanno per arrivare.
Oggi Minisini li ha inseriti nella stabile e dovrebbero essere disponibili dopo 24 ore sul PPA.

 :ciao: