Programmazione => Generale => Topic aperto da: bonmario - Gennaio 22, 2020, 10:26:03 am
Titolo: [RISOLTO]Confronto tra 2 variabili di tipo TDateTime
Inserito da: bonmario - Gennaio 22, 2020, 10:26:03 am
Ciao, devo confrontare 2 variabili di tipo TDateTime, che "dovrebbero" contenere solo data, ora, minuti e secondi. Dopo vari debug, mi sono reso conto che ho dei malfunzionamenti dovuti al fatto che, anche se non visibili, nelle 2 variabili ci sono anche i millisecondi.
Sapete se c'è già una funzione come la "CompareDateTime", a cui però posso dire di fermarsi ai secondi per fare il confronto?
Grazie in anticipo, Mario
Titolo: Re:Confronto tra 2 variabili di tipo TDateTime
Inserito da: xinyiman - Gennaio 22, 2020, 01:41:41 pm
Titolo: Re:Confronto tra 2 variabili di tipo TDateTime
Inserito da: Mimmo - Gennaio 22, 2020, 02:56:26 pm
Ciao, altro sistema: essendo che il TDateTime è in realtà un double e che 1 corrisponde ad un giorno, potresti confrontare il valore assoluto della differenza tra le 2 date con 1/86400. Se il valore assoluto della differenza è minore di quel valore, allora la distanza tra le 2 date è meno di un secondo.
Titolo: Re:Confronto tra 2 variabili di tipo TDateTime
Inserito da: bonmario - Gennaio 22, 2020, 02:56:47 pm
Titolo: Re:[RISOLTO]Confronto tra 2 variabili di tipo TDateTime
Inserito da: bonmario - Gennaio 22, 2020, 06:38:45 pm
E' quella che avevo scritto io nel primo post. Guardando i sorgenti, le segnala come differenti in base ai millesimi di secondo, a me serviva che non andasse oltre ai secondi per il confronto.
Ciao, Mario
Titolo: Re:[RISOLTO]Confronto tra 2 variabili di tipo TDateTime
Inserito da: Stilgar - Gennaio 22, 2020, 07:54:10 pm
Ciao.Tanto hai risolto quindi è per antologia che ti faccio una proposta di soluzione. Se hai bisogno di confrontare le date, estrai anno mese giorno e il resto delle informazioni che ti servono dalla data.Le converti in un UInt64. Questo per ogni data. Poi confronti i due "numeroni" che hai ottenuto. ALternativa 2.fai i confronti in cascata.Prima l'anno, poi il mese e via discorrendo:) Terza soluzioneSecondo me con una * e un truncate messe al posto giusto potresti ottenere delle conversioni veloci da double a UInt64, così da fare il confronto matematico :)
Stilgar PS: Appena ho un attimo provo a fare qualche mageggio coi bit :)