Tipo DATE
Il tipo DATE viene implementato usando un numero a virgola mobile a 8 byte. I giorni sono rappresentati da incrementi di numero intero a partire dal 30 dicembre 1899, mezzanotte come ora zero. I valori di ora sono rappresentati dal valore assoluto della parte frazionaria del numero. La tabella seguente illustra diverse date insieme al relativo equivalente numerico di tipo DATE:
Data e ora | Rappresentazione |
---|---|
30 dicembre 1899, mezzanotte | 0.00 |
1 gennaio 1900, mezzanotte | 2.00 |
4 gennaio 1900, mezzanotte | 5.00 |
4 gennaio 1900, 6 | 5,25 |
4 gennaio 1900, mezzogiorno | 5.50 |
4 gennaio 1900, 9 | 5.875 |
Il tipo di data DATE, nonché la COleDateTime
classe , rappresenta date e ore come riga numerica classica. La COleDateTime
classe contiene diversi metodi per la modifica dei valori DATE, inclusa la conversione in e da altri formati di data comuni.
Quando si utilizzano questi formati di data e ora in Automazione, tenere presente quanto segue:
Le date vengono specificate nell'ora locale; la sincronizzazione deve essere eseguita manualmente quando si lavora con date in fusi orari diversi.
I tipi di data non rappresentano l'ora legale.
La sequenza temporale della data diventa discontinua per i valori di data inferiori a 0 (prima del 30 dicembre 1899). Ciò è dovuto al fatto che la parte numero intero del valore di data viene considerata come firmata, mentre la parte frazionaria viene considerata come senza segno. In altre parole, la parte numero intero del valore di data può essere positiva o negativa, mentre la parte frazionaria del valore di data viene sempre aggiunta alla data logica complessiva. La tabella seguente illustra alcuni esempi:
Data e ora | Rappresentazione |
---|---|
27 dicembre 1899, mezzanotte | -3,00 |
28 dicembre 1899, mezzogiorno | -2.50 |
28 dicembre 1899, mezzanotte | -2,00 |
29 dicembre 1899, mezzanotte | -1,00 |
30 dicembre 1899, 6 | -0.75 |
30 dicembre 1899, mezzogiorno | -0,50 |
30 dicembre 1899, 6 | -0,25 |
30 dicembre 1899, mezzanotte | 0.00 |
30 dicembre 1899, 6 | 0,25 |
30 dicembre 1899, mezzogiorno | 0.50 |
30 dicembre 1899, 6 | 0.75 |
31 dicembre 1899, mezzanotte | 1,00 |
1 gennaio 1900, mezzanotte | 2.00 |
1 gennaio 1900, mezzogiorno | 2.50 |
2 gennaio 1900, mezzanotte | 3.00 |
Attenzione
Si noti che poiché le 6:00 am sono sempre rappresentate da un valore frazionaria 0,25 indipendentemente dal fatto che l'intero che rappresenta il giorno sia positivo (dopo il 30 dicembre, 1899) o negativo (prima del 30 dicembre 1899), un semplice confronto a virgola mobile ordina erroneamente qualsiasi DATA che rappresenta le 6:00 di un giorno prima del 30/12/1899 come successivo a una DATA che rappresenta 7:00 AM nello stesso giorno.
Altre informazioni sui problemi relativi alla data e COleDateTime
ai tipi sono disponibili in COleDateTime Class and Date and Time: Automation Support (Classe E ora COleDateTime: Data e ora: supporto di automazione).