At 22.47 11/10/2006, Andrea Pescetti <[EMAIL PROTECTED]> wrote:
...
In pratica in Excel il giorno numero 1 e' il primo gennaio 1900, ma c'e'
un giorno inventato, il 29/2/1900. OOo fa le cose giuste e quindi il
giorno numero 1 e' il 31/12/1899. Questo permette di avere date seriali
identiche dal 1/3/1900 in avanti, quindi nell'intervallo che interessa
per le applicazioni pratiche.
Grazie, questa proprio non la sapevo, la aggiungo al mio deposito di
anneddoti :-).
Pero' i giorni di differenza sono due, c'e' un secondo bug..
Il secondo giorno e' dovuto alla cattiva pratica dei programmatori di Excel
di cominciare a contare da uno anziche' da zero. Per cui il primo gennaio
1900 per loro va da 1,0000 a 1,9999.. (1,5 e' mezzogiorno di capodanno), il
due gennaio da 2,0000 a 2,9999.. eccetera. Se fossero coerenti, per loro
5-10 non dovrebbe fare -5 ma -6 (gli storici hanno fatto proprio un simile
errore evitando di definire l' anno zero, per cui a cavallo di Cristo 5-10
fa proprio -6: uno nato in primavera del 6 a.c. e morto nella primavera del
5 d.c. non e' vissuto 11 anni ma solo 10, poverino. Beh, tanto ormai e'
morto...)
Pero' loro evitano il problema, semplicemente NON convertendo in numeri i
giorni degli anni prima del 1900. La data del 31 dicembre 1899 non viene
convertita in un numero negativo, e quindi ne deduco non possa essere usata
per differenze di date (provare per credere: in Excel settare A1 al formato
numerico "-123,456", settare A2 al formato data "20/10/01 13:30", settare
A3 come A1 e poi porre in A2 "=A1" e in A3 "=A2": se A1 contiene p.es. 1,5
otteniamo in A2 "1/1/00 12:00" e in A3 di nuovo 1,5; se mettiamo in A1 un
numero negativo A2 impazzisce, se mettiamo in A2 una data del 1899 in A3 la
ritroviamo come scritta in A3, la conversione non ha luogo).
OOo, nonostante il bug, e' totalmente coerente. Facendo le stesse prove in
calc, il 30 dicembre 1899 va da 0,0000 a 0,99999, e il suo mezzogiorno e'
0,5; il 29 dicembre 1899 va da -1 (mezzanotte fra 28 e 29) a 0 (mezzanotte
fra 29 e 30), e il suo mezzogiorno e' -0,5. Quindi si possono sempre fare
differenze fra due date, dal 1583 (riforma giuliana) al 9956 (cosi' dice la
documentazione), ottenendo il numero esatto di giorni (e frazioni, se sono
specificate le ore, e magari anche i minuti e i secondi).
Peccato per Antonio Lazzari che poi, moltiplicando il tutto per 86400, si
possono perdere i secondi intercalari...
ciao
--
Tommaso RUSSO
ENTEOS - C/O AREA Science Park
Padriciano 99, I-34012 Trieste
+39 040 375.5719
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]