Newsgroup: it.comp.lang.delphi
Titolo: Differenza fra date x EXPERT

Non riesco proprio a capire come potrei date due DATE distinte sapere a
quanti giorni, mesi ed ore corrispondono, ed inoltre, tremite altro
contatore sapere quante ore sono trascorse da un orario in particolare...
Grazie a tutti coloro mi sapranno dare un aiuto...

contatore sapere quante ore sono trascorse da un orario in particolare...
Il tipo TDateTime memorizza la data in numero di giorni passati dal
30/12/1899.  Sottraendo un datetime da un altro, ottieni il numero di
giorni trascorsi.  La parte frazionaria indica, quindi, il
sottomultiplo del giorno.
2 giorni e 3 ore = 2 + 3/24 = 2 + 1/8 = 2.125
-- 
Andrea Laforgia - a.laforgia(at)
libero.it
"There are three kinds of people in this world; 
 those who are good at maths and those who aren't".

Non funge, se faccio la differenza mi da una data sbagliata...
ris:= d2.Date - d1.Date;
edit1.Text:= dateToStr (ris);
Inoltre sono in gioco anche le ore quindi è più complesso
"Andrea Laforgia" <x@x.x> ha scritto nel messaggio
news:s538gv8md869cdnp3...@4ax.com...


edit1.Text:= dateToStr (ris);
Evidentemente non mi sono spiegato; la differenza non ti da una data,
la differenza ti da un numero di giorni trascorsi e il numero di
giorni comprende le ore (come frazioni del giorno).
var
  D1, D2: TDateTime;
begin
  D1 := EncodeDate(2003, 02, 03) + EncodeTime(20, 20, 10, 0);
  D2 := EncodeDate(2003, 02, 04) + EncodeTime(21, 20, 10, 0);
  ShowMessage(DateTimeToStr(D2-D1));
end;
Lo ShowMessage ti fa vedere: 31/12/1899 1.00.00 che è corretto.


E cosa significa, come faccio a sapere quanti giorni, ore e minuti sono
trascorsi???
Sono un pò duro ma non ci arrivo 31/12/1899 1.00.00 questo risultato come lo
interpreto???
"Andrea Laforgia" <x@x.x> ha scritto nel messaggio
news:kp48gvo4b334e4rd4...@4ax.com...


interpreto???
1) Si, sei un po' duro.
2) quota meglio, anzi impara a quotare, diversamente... plonk!
Sono stanco di vedere interi thread quotati senza senso.
3)Cerca nell'indice dell'help di delphi questo topic: "Date/time routines"
4)
http://homepages.borland.com/efg2lab/Library/Delphi/DatesAndTimes/index.html
,
sezione date math.
-- 
Morde. 
(morde at programmer dot net)

trascorsi???
Come ho già detto nei messaggi precedenti, ovvero la parte intera come
numero di giorni trascorsi e la parte frazionaria come 24esimi del
giorno.  
procedure TForm1.Button1Click(Sender: TObject);
var
  D1, D2: TDateTime;
  NumGiorni: Double;
  NumOre: Double;
  NumMin: Double;
  NumSec: Double;
begin
  D1 := EncodeDate(2003, 3, 20) + EncodeTime(20, 20, 20, 0);
  D2 := EncodeDate(2003, 3, 23) + EncodeTime(22, 31, 23, 0);
  NumGiorni := D2 - D1;
  NumOre := Frac(D2-D1)*24;
  NumMin := Frac(NumOre)*60;
  NumSec := Frac(NumMin)*60;
  ShowMessageFmt('%d giorni %d ore %d min %d sec',
                 [Trunc(NumGiorni),
                  Trunc(NumOre),
                  Trunc(NumMin),
                  Trunc(NumSec)]);
end;


Grazie per la Chiarissima risposta, ora riesco a capire...
Non riuscivo a capire come mai quando facevo la sottrazione tra le due date
mi restituiva a sua volta una data incorretta, cmq grazie al tuo post ho
risolto il problema senza dover ringraziare persone che si lamentano per un
niente come se fossere Dio in terra...
"Andrea Laforgia" <x@x.x> ha scritto nel messaggio
news:pe88gv847pctcgh2m...@4ax.com...


 per un niente come se fossere Dio in terra...
<OT>
se continui a quotare così sono sicuro che le prossime volte avrai 
pochissime risposte ai tuoi quesiti ;)
Nb: il ng è una comunità che vive bene se *tutti* rispettano poche e 
semplici regole!
ciao
</OT>

niente come se fossere Dio in terra...
Hai proprio ragione...... *plonk*!


Non è per cattiveria e non per capriccio, ma dove sbaglio ???
Per rispondere al msg io seleziono l'ultimo msg e poi faccio "risp al ng",
qual'è la proc. corretta, forse sarò un pò Lamer, ma proprio per evitare i
miei errori potreste illuminarmi...
"MG" <M...@xx.xx> ha scritto nel messaggio
news:Xns93AD9E5776D65ga...@193.70.192.192...


 evitare i miei errori potreste illuminarmi...
Non ho sottomano un link con le istruzioni sul quoting corretto però ci 
sono due cose che puoi fare da subito:
1) ciò che scrivi tu in risposta ai post degli altri frequentatori del 
newsgroup va scritto *sotto*, non sopra;
2) quando rispondi ad un post il tuo newsreader (nel tuo caso Outlook) 
riporta tutto il testo del post a cui rispondi. Non tutto è però 
necessario. Le parti non necessarie vanno tolte.
-- 
Una volta che avete conosciuto il volo, camminerete sulla Terra guardando 
il cielo, perché là siete stati e là desiderate tornare (Leonardo da Vinci)

 evitare i miei errori potreste illuminarmi...
d) ed illuminati
Ah, dimenticavo: *plonk* anche da parte mia (fino alla prossima
revisione del killfile).
Saluti
Paol oArosio

 Hai proprio ragione...... *plonk*!
O__O
Secondo me tu e Laforgia avete fatto uno scambio d'identità :)
--
Jax
Journeying Artificial Xenomorph


Ringrazio Andrea che mi ha "Seriamente" aiutato, dimostrando tutta la sua
compentenza, aiutandomi a risolvere il problema in maniera diretta senza
tergiversare come fanno tanti nel NG. Se il problema si conosce, si risolve,
senza rimandare a post, link, msg che non servono ad un c...o, o perlomeno
si risponde umilmente... Non penso che tutti siano partiti da un altissimo
livello, anche se molti a sentirli mangiano a casa Borland...
Sono cmq contento che ci sia sempre qualcuno che è disposto a dare una mano
ai meno esperti ...
Grazie Laforgia

 diretta senza tergiversare come fanno tanti nel NG. Se il problema si
Penso che tu te la sia presa per il post di Morde, e fai male.
Primo perché Morde (l'ho conosciuto di persona) è impressionantemente
(licenza poetica) gentile, secondo perché l'appunto che ti ha fatto non era
di carattere personale, ma generico.
Tante persone, inesperte come te, vengono sui newsgroup ignorando che ci
sono delle regole (scritte) da rispettare, altrimenti usenet (la rete dei
newsgroup) non sarebbe arrivata fino ad oggi in un così buono stato.
Sei stato 1) sfortunato ad aver beccato Morde in un periodo evidentemente
"strano" (mi pare che in questi giorni abbia anche una competizione musicale
a livello nazionale quindi era probabilmente di fretta) 2) fortunato ad aver
beccato Andrea in un periodo di "grassa", visto che, a giudicare dalla
quantità di post, alla sera probabilmente si deve fare gli impacchi alle
mani :)
Se posso darti un consiglio, comunque, io eviterei questi "sfoghi" personali
sui newsgroup. Non sono molto ben visti, perché sembra che qui dentro si
aiuti solo chi è simpatico. Non è così, e se fai un giro su googlegroups lo
scoprirai da te.


 servono ad un c...o, o perlomeno si risponde umilmente... Non penso
...
Mi permetto di dissentire. Il link, che dubito tu abbia seguito, riportava
esattamente la soluzione al tuo problema. Forse l'approccio non e' stato dei
piu' gentili, ma seguendo quel link avresti trovato una risposta.
Dal modo in cui hai posto (e riproposto) la domanda, hai dato l'impressione
di non aver letto attentamente prima di tutto la documentazione, e poi le
risposte che ti sono state date, e a qualcuno questo puo' aver dato
fastidio.
Detto questo, spero che tu rimanga con noi e continui a leggere (e a
scrivere) su questo ng,  benvenuto!

 livello, anche se molti a sentirli mangiano a casa Borland...
Continui a sbagliare. A chi ti riferisci? a Morde o a chi altro? 
Perchè ti ha risposto "quota meglio, anzi impara a quotare,
diversamente... plonk!"; Sono daccordo!
Perchè ti ha risposto "cerca nell'indice dell'help di delphi questo
topic: "Date/time routines"; Se Laforgia non avesse avuto il tempo
magari ti avrebbe potuto rispondere alla stessa maniera.
Perchè ti ha risposto
"
http://homepages.borland.com/efg2lab/Library/Delphi/DatesAndTimes/index.html
,
sezione date math."; è un link dove trovi documentazione utile per
lavorare
con le date.
Detto ciò qui trovi una bella lezione di quoting:
 
http://makeashorterlink.com/?R38C25205
Acqua  
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG