Condividi tramite


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).

Vedi anche

Data e ora
Classe COleDateTime