Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Encapsula o DATE tipo de dados usado na automação OLE.
Sintaxe
class COleDateTime
Membros
Construtores Públicos
| Nome | Descrição |
|---|---|
| COleDateTime::COleDateTime | Constrói um objeto COleDateTime. |
Métodos Públicos
| Nome | Descrição |
|---|---|
| COleDateTime::Formato | Gera uma representação formatada de cadeia de caracteres de um COleDateTime objeto. |
| COleDateTime::GetAsDBTIMESTAMP | Chame esse método para obter o COleDateTime tempo no objeto como uma estrutura de DBTIMESTAMP dados. |
| COleDateTime::GetAsSystemTime | Chame esse método para obter o COleDateTime tempo no objeto como uma estrutura de dados SYSTEMTIME . |
| COleDateTime::GetAsUDATE | Chame esse método para obter o COleDateTime tempo na como uma estrutura de UDATE dados. |
| COleDateTime::GetCurrentTime | Cria um COleDateTime objeto que representa a hora atual (função de membro estático). |
| COleDateTime::GetDay | Devolve o dia em que este COleDateTime objeto representa (1 - 31). |
| COleDateTime::GetDayOfWeek | Devolve o dia da semana que este COleDateTime objeto representa (domingo = 1). |
| COleDateTime::GetDayOfYear | Devolve o dia do ano que este COleDateTime objeto representa (1 de janeiro = 1). |
| COleDateTime::GetHour | Devolve a hora que este COleDateTime objeto representa (0 - 23). |
| COleDateTime::GetMinute | Devolve o minuto que este COleDateTime objeto representa (0 - 59). |
| COleDateTime::GetMonth | Devolve o mês que este COleDateTime objeto representa (1 - 12). |
| COleDateTime::GetSecond | Retorna o segundo que este COleDateTime objeto representa (0 - 59). |
| COleDateTime::GetStatus | Obtém o status (validade) deste COleDateTime objeto. |
| COleDateTime::GetYear | Devolve o ano que este COleDateTime objeto representa. |
| COleDateTime::P arseDateTime | Lê um valor de data/hora de uma cadeia de caracteres e define o valor de COleDateTime. |
| COleDateTime::SetDate | Define o valor deste COleDateTime objeto como o valor somente data especificado. |
| COleDateTime::SetDateTime | Define o valor deste COleDateTime objeto como o valor de data/hora especificado. |
| COleDateTime::SetStatus | Define o status (validade) deste COleDateTime objeto. |
| COleDateTime::SetTime | Define o valor desse COleDateTime objeto como o valor somente tempo especificado. |
Operadores Públicos
| Nome | Descrição |
|---|---|
| COleDateTime::operador ==, COleDateTime::operador <, etc. | Compare dois COleDateTime valores. |
| COleDateTime::operador +, COleDateTime::operador - | Adicionar e subtrair COleDateTime valores. |
| COleDateTime::operador +=, COleDateTime::operador -= | Adicione e subtraia um COleDateTime valor deste COleDateTime objeto. |
| COleDateTime::operador = | Copia um COleDateTime valor. |
| COleDateTime::DATE do operador, COleDateTime::data do operador* | Converte um COleDateTime valor em um DATE ou um DATE*arquivo . |
Membros de Dados Públicos
| Nome | Descrição |
|---|---|
| COleDateTime::m_dt | Contém o subjacente DATE para este COleDateTime objeto. |
| COleDateTime::m_status | Contém o status deste COleDateTime objeto. |
Observações
COleDateTime não tem uma classe base.
É um dos tipos possíveis para o tipo de dados VARIANT de automação OLE. Um COleDateTime valor representa um valor absoluto de data e hora.
O DATE tipo é implementado como um valor de ponto flutuante. Os dias são medidos a partir de 30 de dezembro de 1899, à meia-noite. A tabela a seguir mostra algumas datas e seus valores associados:
| Data | Valor |
|---|---|
| 29 de dezembro de 1899, meia-noite | -1.0 |
| 29 de dezembro de 1899, 6 A.M | -1.25 |
| 30 de dezembro de 1899, meia-noite | 0.0 |
| 31 de dezembro de 1899, meia-noite | 1.0 |
| 1 de janeiro de 1900, 6 A.M. | 2,25 |
Atenção
Na tabela acima, embora os valores do dia se tornem negativos antes da meia-noite de 30 de dezembro de 1899, os valores da hora do dia não. Por exemplo, 6:00 AM é sempre representado por um valor fracionário 0,25, independentemente de o número inteiro que representa o dia ser positivo (após 30 de dezembro de 1899) ou negativo (antes de 30 de dezembro de 1899). Isso significa que uma simples comparação de ponto flutuante classificaria erroneamente um COleDateTime representando 6:00 AM em 29/12/1899 como posterior a um representando 7:00 AM no mesmo dia.
A COleDateTime aula data de 1º de janeiro de 100 a 31 de dezembro de 9999. A COleDateTime classe usa o calendário gregoriano, não suporta datas julianas.
COleDateTime ignora o horário de verão. (Consulte Data e hora: Suporte de automação.)
Observação
Você pode usar o %y formato para recuperar um ano de dois dígitos apenas para datas a partir de 1900. Se você usar o %y formato em uma data anterior a 1900, o código gerará uma falha ASSERT.
Esse tipo também é usado para representar valores somente data ou hora. Por convenção, a data 0 (30 de dezembro de 1899) é usada para valores somente de tempo e a hora 00:00 (meia-noite) é usada para valores somente de data.
Se você criar um COleDateTime objeto usando uma data inferior a 100, a data será aceita, mas as chamadas subsequentes para GetYear, GetMonth, GetDay, GetHour, , GetMinutee GetSecond falhar e retornar -1. Anteriormente, você podia usar datas de dois dígitos, mas as datas devem ser 100 ou maiores no MFC 4.2 e posterior.
Para evitar problemas, especifique uma data de quatro dígitos. Por exemplo:
COleDateTime mytime(1996, 1, 1, 0, 0, 0);
As operações aritméticas básicas para os COleDateTime valores usam a classe complementar COleDateTimeSpan.
COleDateTimeSpan Os valores definem um intervalo de tempo. A relação entre estas classes é semelhante à relação entre CTime e CTimeSpan.
Para obter mais informações sobre as COleDateTime classes e COleDateTimeSpan , consulte o artigo Data e hora: suporte à automação.
Requerimentos
Cabeçalho: ATLComTime.h
Operadores relacionais COleDateTime
Operadores de comparação.
bool operator==(const COleDateTime& date) const throw();
bool operator!=(const COleDateTime& date) const throw();
bool operator<(const COleDateTime& date) const throw();
bool operator>(const COleDateTime& date) const throw();
bool operator<=(const COleDateTime& date) const throw();
bool operator>=(const COleDateTime& date) const throw();
Parâmetros
data
O COleDateTime objeto a ser comparado.
Observações
Observação
Um ATLASSERT ocorrerá se um dos dois operandos for inválido.
Exemplos
COleDateTime dateOne(1995, 3, 15, 12, 0, 0); // 15 March 1995 12 noon
COleDateTime dateTwo(dateOne); // 15 March 1995 12 noon
BOOL b;
b = dateOne == dateTwo; // TRUE
b = dateOne < dateTwo; // FALSE, same value
b = dateOne > dateTwo; // FALSE, same value
b = dateOne <= dateTwo; // TRUE, same value
b = dateOne >= dateTwo; // TRUE, same value
dateTwo.SetStatus(COleDateTime::invalid);
b = dateOne == dateTwo; // FALSE, different status
b = dateOne != dateTwo; // TRUE, different status
Os operadores >=, <=, >, e <, afirmarão se o COleDateTime objeto estiver definido como null.
VARIANT v = {};
v.vt = VT_NULL;
COleDateTime t1(v);
COleDateTime t2(v);
t1 = t1 + t2;
COleDateTime::COleDateTime
Constrói um objeto COleDateTime.
COleDateTime() throw();
COleDateTime(const VARIANT& varSrc) throw();
COleDateTime(DATE dtSrc) throw();
COleDateTime(time_t timeSrc) throw();
COleDateTime(__time64_t timeSrc) throw();
COleDateTime(const SYSTEMTIME& systimeSrc) throw();
COleDateTime(const FILETIME& filetimeSrc) throw();
COleDateTime(int nYear,
int nMonth,
int nDay,
int nHour,
int nMin,
int nSec) throw();
COleDateTime(WORD wDosDate,
WORD wDosTime) throw();
COleDateTime(const DBTIMESTAMP& timeStamp) throw();
Parâmetros
dataSrc
Um objeto existente COleDateTime a ser copiado para o novo COleDateTime objeto.
varSrc
Uma estrutura de dados existente VARIANT (possivelmente um COleVariant objeto) a ser convertida em um valor de data/hora (VT_DATE) e copiada para o novo COleDateTime objeto.
dtSrc
Um valor de data/hora (DATE) a ser copiado para o novo COleDateTime objeto.
timeSrc
Um time_t ou __time64_t valor a ser convertido em um valor de data/hora e copiado para o novo COleDateTime objeto.
systimeSrc
Uma SYSTEMTIME estrutura a ser convertida em um valor de data/hora e copiada para o novo COleDateTime objeto.
filetimeSrc
Uma FILETIME estrutura a ser convertida em um valor de data/hora e copiada para o novo COleDateTime objeto. A FILETIME usa o Tempo Universal Coordenado (UTC), portanto, se você passar uma hora local na estrutura, seus resultados estarão incorretos. Consulte Tempos de arquivo no SDK do Windows para obter mais informações.
nAno, nMês, nDia, nHora, nMin, nSec
Indique os valores de data e hora a serem copiados para o novo COleDateTime objeto.
wDosDate, wDosTime
MS-DOS valores de data e hora a serem convertidos em um valor de data/hora e copiados para o novo COleDateTime objeto.
Carimbo de data/hora
Uma referência a uma estrutura DBTimeStamp que contém a hora local atual.
Observações
Todos esses construtores criam novos COleDateTime objetos inicializados com o valor especificado. A tabela a seguir mostra intervalos válidos para cada componente de data e hora:
| Componente data/hora | Intervalo válido |
|---|---|
| ano | 100 - 9999 |
| mês | 0 - 12 |
| Dia | 0 - 31 |
| hora | 0 - 23 |
| minuto | 0 - 59 |
| segundo | 0 - 59 |
Observe que o limite superior real para o componente dia varia com base nos componentes mês e ano. Para obter detalhes, consulte as SetDate funções ou SetDateTime membro.
Segue-se uma breve descrição de cada construtor:
COleDateTime() Constrói umCOleDateTimeobjeto inicializado para 0 (meia-noite, 30 de dezembro de 1899).COleDateTime(dateSrc) Constrói umCOleDateTimeobjeto a partir de um objeto existenteCOleDateTime.COleDateTime(varSrc) Constrói umCOleDateTimeobjeto. Tenta converter umaVARIANTestrutura ou objeto COleVariant em um valor de data/hora (VT_DATE). Se essa conversão for bem-sucedida, o valor convertido será copiado para o novoCOleDateTimeobjeto. Se não estiver, oCOleDateTimevalor do objeto é definido como 0 (meia-noite, 30 de dezembro de 1899) e seu status como inválido.COleDateTime(dtSrc) Constrói umCOleDateTimeobjeto a partir de umDATEvalor.COleDateTime(timeSrc) Constrói umCOleDateTimeobjeto a partir de umtime_tvalor.COleDateTime(systimeSrc) Constrói umCOleDateTimeobjeto a partir de umSYSTEMTIMEvalor.COleDateTime(filetimeSrc) Constrói umCOleDateTimeobjeto a partir de umFILETIMEvalor. . AFILETIMEusa o Tempo Universal Coordenado (UTC), portanto, se você passar uma hora local na estrutura, seus resultados estarão incorretos. Para obter mais informações, consulte Tempos de arquivo no SDK do Windows.COleDateTime(nYear,nMonth,nDay,nHour,nMin,nSecConstrói umCOleDateTimeobjeto a partir dos valores numéricos especificados.COleDateTime(wDosDate,wDosTime) Constrói umCOleDateTimeobjeto a partir dos valores de data e hora de MS-DOS especificados.
Para obter mais informações sobre o tipo de time_t dados, consulte a função de tempo na Referência da Biblioteca deRun-Time.
Para obter mais informações, consulte as estruturas SYSTEMTIME e FILETIME no SDK do Windows.
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
Observação
O construtor usando DBTIMESTAMP parâmetro só está disponível quando OLEDB.h está incluído.
Exemplo
time_t osBinaryTime; // C run-time time (defined in <time.h>)
time(&osBinaryTime); // Get the current time from the
// operating system.
COleDateTime time1; // initialized to 00:00am, 30 December 1899
// (and m_nStatus is valid!)
COleDateTime time2 = time1; // Copy constructor
COleDateTime time3(osBinaryTime); // from time_t
COleDateTime time4(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
SYSTEMTIME sysTime; // Win32 time information
GetSystemTime(&sysTime);
COleDateTime time5(sysTime);
COleDateTime::Formato
Cria uma representação formatada do valor de data/hora.
CString Format(DWORD dwFlags = 0, LCID lcid = LANG_USER_DEFAULT) const;
CString Format(LPCTSTR lpszFormat) const;
CString Format(UINT nFormatID) const;
Parâmetros
dwBandeiras
Indica um dos seguintes sinalizadores de localidade:
LOCALE_NOUSEROVERRIDE Use as configurações de localidade padrão do sistema, em vez das configurações personalizadas do usuário.
VAR_TIMEVALUEONLY Ignore a parte da data durante a análise.
VAR_DATEVALUEONLY Ignore a parte de tempo durante a análise.
LCID
Indica o ID de localidade a ser usado para a conversão. Para obter mais informações sobre identificadores de idioma, consulte Identificadores de idioma.
lpszFormat
Uma cadeia de formatação semelhante à cadeia de printf formatação. Cada código de formatação, precedido por um sinal de porcentagem (%), é substituído pelo componente correspondente COleDateTime . Outros caracteres na cadeia de formatação são copiados inalterados para a cadeia de caracteres retornada. Para obter mais informações, consulte a função de tempo de execução strftime. O valor e o significado dos códigos de formatação são Format :
%HHoras no dia atual%MMinutos na hora atual%SSegundos no minuto atual%%Sinal de percentagem
nFormatID
A ID do recurso para a cadeia de caracteres de controle de formato.
Valor de retorno
A CString que contém o valor de data/hora formatado.
Observações
Se o status desse COleDateTime objeto for null, o valor de retorno será uma cadeia de caracteres vazia. Se o status for inválido, a cadeia de caracteres de retorno será especificada pelo recurso de cadeia de caracteres ATL_IDS_DATETIME_INVALID.
Segue-se uma breve descrição dos três formulários para esta função:
Format( dwFlags, lcid)
Este formulário formata o valor usando as especificações de idioma (IDs de localidade) para data e hora. Usando os parâmetros padrão, este formulário imprimirá a data e a hora, a menos que a parte de hora seja 0 (meia-noite), caso em que imprimirá apenas a data, ou a parte de data é 0 (30 de dezembro de 1899), caso em que imprimirá apenas a hora. Se o valor de data/hora for 0 (30 de dezembro de 1899, meia-noite), este formulário com os parâmetros padrão imprimirá meia-noite.
Format( lpszFormat)
Este formulário formata o valor usando a cadeia de caracteres de formato que contém códigos de formatação especiais que são precedidos por um sinal de porcentagem (%), como em printf. A cadeia de caracteres de formatação é passada como um parâmetro para a função. Para obter mais informações sobre os códigos de formatação, consulte strftime, wcsftime na Run-Time Library Reference.
Format( nFormatID)
Este formulário formata o valor usando a cadeia de caracteres de formato que contém códigos de formatação especiais que são precedidos por um sinal de porcentagem (%), como em printf. A cadeia de caracteres de formatação é um recurso. A ID desse recurso de cadeia de caracteres é passada como o parâmetro. Para obter mais informações sobre os códigos de formatação, consulte strftime, wcsftime na Run-Time Library Reference.
Exemplo
COleDateTime t(1999, 3, 19, 22, 15, 0);
CString str = t.Format(_T("%A, %B %d, %Y"));
ASSERT(str == _T("Friday, March 19, 1999"));
COleDateTime::GetAsDBTIMESTAMP
Chame esse método para obter o COleDateTime tempo no objeto como uma estrutura de DBTIMESTAMP dados.
bool GetAsDBTIMESTAMP(DBTIMESTAMP& timeStamp) const throw();
Parâmetros
Carimbo de data/hora
Uma referência a uma estrutura DBTimeStamp .
Valor de retorno
Diferente de zero se for bem-sucedido; caso contrário, 0.
Observações
Armazena a hora resultante na estrutura timeStamp referenciada. A DBTIMESTAMP estrutura de dados inicializada por esta função terá seu fraction membro definido como zero.
Exemplo
COleDateTime t = COleDateTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP(ts); // retrieves the time in t into the ts structure
COleDateTime::GetAsSystemTime
Chame esse método para obter o COleDateTime tempo no objeto como uma estrutura de SYSTEMTIME dados.
bool GetAsSystemTime(SYSTEMTIME& sysTime) const throw();
Parâmetros
sysTime [en]
Uma referência a uma estrutura SYSTEMTIME para receber o valor de data/hora convertido do COleDateTime objeto.
Valor de retorno
Devolve TRUE se for bem-sucedido; FALSO se a conversão falhar ou se o COleDateTime objeto for NULL ou inválido.
Observações
GetAsSystemTime armazena o tempo resultante no objeto sysTime referenciado. A SYSTEMTIME estrutura de dados inicializada por esta função terá seu wMilliseconds membro definido como zero.
Para obter mais informações sobre as informações de status mantidas em um COleDateTime objeto, consulte GetStatus.
COleDateTime::GetAsUDATE
Chame esse método para obter o COleDateTime tempo no objeto como uma estrutura de UDATE dados.
bool GetAsUDATE(UDATE& uDate) const throw();
Parâmetros
uData
Uma referência a uma UDATE estrutura para receber o valor de data/hora convertido do COleDateTime objeto.
Valor de retorno
Devolve TRUE se for bem-sucedido; FALSO se a conversão falhar ou se o COleDateTime objeto for NULL ou inválido.
Observações
Uma UDATE estrutura representa uma data "descompactada".
COleDateTime::GetCurrentTime
Chame essa função de membro estático para retornar o valor de data/hora atual.
static COleDateTime WINAPI GetCurrentTime() throw();
Exemplo
// example for COleDateTime::GetCurrentTime
COleDateTime dateTest;
// dateTest value = midnight 30 December 1899
dateTest = COleDateTime::GetCurrentTime();
// dateTest value = current date and time
// a second example for COleDateTime::GetCurrentTime
// Since GetCurrentTime() is a static member, you can use it in
// a constructor:
COleDateTime t1 = COleDateTime::GetCurrentTime();
COleDateTime t2(COleDateTime::GetCurrentTime());
// Or in a normal assignment operator
COleDateTime t3;
t3 = COleDateTime::GetCurrentTime();
// or even in an expression
if (COleDateTime::GetCurrentTime().GetDayOfWeek() == 6)
_tprintf(_T("Thank Goodness it is Friday!\n\n"));
COleDateTime::GetDay
Obtém o dia do mês representado por esse valor de data/hora.
int GetDay() const throw();
Valor de retorno
O dia do mês representado pelo valor deste COleDateTime objeto ou COleDateTime::error se o dia não pôde ser obtido.
Observações
Os valores de retorno válidos variam entre 1 e 31.
Para obter informações sobre outras funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Exemplo
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDay() == 19);
ASSERT(t.GetMonth() == 3);
ASSERT(t.GetYear() == 1999);
COleDateTime::GetDayOfWeek
Obtém o dia da semana representado por esse valor de data/hora.
int GetDayOfWeek() const throw();
Valor de retorno
O dia da semana representado pelo valor deste COleDateTime objeto ou COleDateTime::error se o dia da semana não pôde ser obtido.
Observações
Os valores de retorno válidos variam entre 1 e 7, onde 1=domingo, 2=segunda-feira e assim por diante.
Para obter informações sobre outras funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Exemplo
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfWeek() == 6); // it's a Friday
COleDateTime::GetDayOfYear
Obtém o dia do ano representado por esse valor de data/hora.
int GetDayOfYear() const throw();
Valor de retorno
O dia do ano representado pelo valor deste COleDateTime objeto ou COleDateTime::error se o dia do ano não pôde ser obtido.
Observações
Os valores de retorno válidos variam entre 1 e 366, onde 1 de janeiro = 1.
Para obter informações sobre outras funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Exemplo
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfYear() == 78); // 78th day of that year
COleDateTime::GetHour
Obtém a hora representada por esse valor de data/hora.
int GetHour() const throw();
Valor de retorno
A hora representada pelo valor deste COleDateTime objeto ou COleDateTime::error se a hora não pôde ser obtida.
Observações
Os valores de retorno válidos variam entre 0 e 23.
Para obter informações sobre outras funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Exemplo
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetSecond() == 0);
ASSERT(t.GetMinute() == 15);
ASSERT(t.GetHour() == 22);
COleDateTime::GetMinute
Obtém o minuto representado por esse valor de data/hora.
int GetMinute() const throw();
Valor de retorno
O minuto representado pelo valor deste COleDateTime objeto ou COleDateTime::error se o minuto não pôde ser obtido.
Observações
Os valores de retorno válidos variam entre 0 e 59.
Para obter informações sobre outras funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Exemplo
Veja o exemplo de GetHour.
COleDateTime::GetMonth
Obtém o mês representado por esse valor de data/hora.
int GetMonth() const throw();
Valor de retorno
O mês representado pelo valor deste COleDateTime objeto ou COleDateTime::error se o mês não pôde ser obtido.
Observações
Os valores de retorno válidos variam entre 1 e 12.
Para obter informações sobre outras funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Exemplo
Veja o exemplo de GetDay.
COleDateTime::GetSecond
Obtém o segundo representado por esse valor de data/hora.
int GetSecond() const throw();
Valor de retorno
O segundo representado pelo valor deste COleDateTime objeto ou COleDateTime::error se o segundo não pôde ser obtido.
Observações
Os valores de retorno válidos variam entre 0 e 59.
Observação
A COleDateTime classe não suporta segundos bissextos.
Para obter mais informações sobre a implementação do COleDateTime, consulte o artigo Data e hora: suporte à automação.
Para obter informações sobre outras funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Exemplo
Veja o exemplo de GetHour.
COleDateTime::GetStatus
Obtém o status (validade) de um determinado COleDateTime objeto.
DateTimeStatus GetStatus() const throw();
Valor de retorno
Devolve o estado deste COleDateTime valor. Se você chamar GetStatus um COleDateTime objeto construído com o padrão, ele retornará válido. Se você chamar GetStatus um COleDateTime objeto inicializado com o construtor definido como null, GetStatus retornará null.
Observações
O valor de DateTimeStatus retorno é definido pelo tipo enumerado, que é definido dentro da COleDateTime classe.
enum DateTimeStatus
{
error = -1,
valid = 0,
invalid = 1, // Invalid date (out of range, etc.)
null = 2, // Literally has no value
};
Para obter uma breve descrição desses valores de status, consulte a seguinte lista:
COleDateTime::errorIndica que ocorreu um erro ao tentar obter parte do valor de data/hora.COleDateTime::validIndica que esteCOleDateTimeobjeto é válido.COleDateTime::invalidIndica que esseCOleDateTimeobjeto é inválido, ou seja, seu valor pode estar incorreto.COleDateTime::nullIndica que esseCOleDateTimeobjeto é null, ou seja, que nenhum valor foi fornecido para esse objeto. (Isso é "null" no sentido de banco de dados de "não ter valor", em oposição ao C++ NULL.)
O status de um COleDateTime objeto é inválido nos seguintes casos:
Se o seu valor for definido a partir de um
VARIANTouCOleVariantvalor que não pôde ser convertido para um valor de data/hora.Se seu valor for definido a partir de um
time_t,SYSTEMTIMEouFILETIMEvalor que não pôde ser convertido em um valor de data/hora válido.Se o seu valor for definido por
SetDateTimecom valores de parâmetro inválidos.Se este objeto tiver sofrido um estouro ou subfluxo durante uma operação de atribuição aritmética, ou seja,
+=ou-=.Se um valor inválido foi atribuído a este objeto.
Se o status deste objeto foi explicitamente definido como inválido usando
SetStatus.
Para obter mais informações sobre as operações que podem definir o status como inválido, consulte as seguintes funções de membro:
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
Exemplo
COleDateTime t;
// this one is a leap year
t.SetDateTime(2000, 2, 29, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::valid);
// this date isn't valid
t.SetDateTime(1925, 2, 30, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::invalid);
// the only way to set null is to set null!
t.SetStatus(COleDateTime::null);
ASSERT(t.GetStatus() == COleDateTime::null);
COleDateTime::GetYear
Obtém o ano representado por esse valor de data/hora.
int GetYear() const throw();
Valor de retorno
O ano representado pelo valor deste COleDateTime objeto ou COleDateTime::error se o ano não pôde ser obtido.
Observações
Os valores de retorno válidos variam entre 100 e 9999, o que inclui o século.
Para obter informações sobre outras funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
Exemplo
Veja o exemplo de GetDay.
COleDateTime::m_dt
A estrutura subjacente DATE para este COleDateTime objeto.
DATE m_dt;
Observações
Atenção
Alterar o valor no objeto acessado DATE pelo ponteiro retornado por esta função alterará o valor desse COleDateTime objeto. Ele não altera o status deste COleDateTime objeto.
Para obter mais informações sobre a implementação do DATE objeto, consulte o artigo Data e hora: suporte à automação.
COleDateTime::m_status
Contém o status deste COleDateTime objeto.
DateTimeStatus m_status;
Observações
O tipo desse membro de dados é o tipo DateTimeStatusenumerado , que é definido dentro da COleDateTime classe. Para obter mais informações, consulte COleDateTime::GetStatus.
Atenção
Este membro de dados é para situações avançadas de programação. Você deve usar as funções de membro embutido GetStatus e SetStatus. Consulte SetStatus para obter mais precauções em relação à configuração explícita desse membro de dados.
COleDateTime::operador =
Copia um COleDateTime valor.
COleDateTime& operator=(const VARIANT& varSrc) throw();
COleDateTime& operator=(DATE dtSrc) throw();
COleDateTime& operator=(const time_t& timeSrc) throw();
COleDateTime& operator=(const __time64_t& timeSrc) throw();
COleDateTime& operator=(const SYSTEMTIME& systimeSrc) throw();
COleDateTime& operator=(const FILETIME& filetimeSrc) throw();
COleDateTime& operator=(const UDATE& uDate) throw();
Observações
Esses operadores de atribuição sobrecarregados copiam o valor de data/hora de origem para este COleDateTime objeto. Segue-se uma breve descrição de cada um destes operadores de atribuição sobrecarregados:
operator =(
dateSrc) O valor e o status do operando são copiados para esteCOleDateTimeobjeto.operador =(varSrc) Se a conversão do valor VARIANT (ou objeto COleVariant ) para uma data/hora (VT_DATE) for bem-sucedida, o valor convertido será copiado para esse
COleDateTimeobjeto e seu status será definido como válido. Se a conversão não for bem-sucedida, o valor deste objeto será definido como zero (30 de dezembro de 1899, meia-noite) e seu status como inválido.operator =(
dtSrc) ODATEvalor é copiado para esteCOleDateTimeobjeto e seu status é definido como válido.operator =(
timeSrc) Otime_tvalor ou__time64_té convertido e copiado para esteCOleDateTimeobjeto. Se a conversão for bem-sucedida, o status deste objeto será definido como válido; se não tiver êxito, é definido como inválido.operador =(systimeSrc) O valor SYSTEMTIME é convertido e copiado para este
COleDateTimeobjeto. Se a conversão for bem-sucedida, o status deste objeto será definido como válido; se não tiver êxito, é definido como inválido.operator =(
uDate) OUDATEvalor é convertido e copiado para esteCOleDateTimeobjeto. Se a conversão for bem-sucedida, o status deste objeto será definido como válido; se não tiver êxito, é definido como inválido. UmaUDATEestrutura representa uma data "descompactada". Para obter mais informações, consulte a função VarDateFromUdate.operator =(
filetimeSrc) O valor FILETIME é convertido e copiado para esteCOleDateTimeobjeto. Se a conversão for bem-sucedida, o status deste objeto será definido como válido; caso contrário, é definido como inválido.FILETIMEusa o Tempo Universal Coordenado (UTC), portanto, se você passar um horário UTC na estrutura, seus resultados serão convertidos da hora UTC para a hora local e serão armazenados como hora variante. Esse comportamento é o mesmo que no Visual C++ 6.0 e Visual C++.NET 2003 SP2. Para obter mais informações, consulte Tempos de arquivo no SDK do Windows.
Para obter mais informações, consulte a entrada VARIANT no SDK do Windows.
Para obter mais informações sobre o tipo de time_t dados, consulte a função de tempo na Referência da Biblioteca deRun-Time.
Para obter mais informações, consulte as estruturas SYSTEMTIME e FILETIME no SDK do Windows.
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
COleDateTime::operador +, -
Adicionar e subtrair ColeDateTime valores.
COleDateTime operator+(COleDateTimeSpan dateSpan) const throw();
COleDateTime operator-(COleDateTimeSpan dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTime& date) const throw();
Observações
COleDateTime objetos representam tempos absolutos.
Os objetos COleDateTimeSpan representam tempos relativos. Os dois primeiros operadores permitem adicionar e subtrair um COleDateTimeSpan valor de um COleDateTime valor. O terceiro operador permite que você subtraia um COleDateTime valor de outro para produzir um COleDateTimeSpan valor.
Se qualquer um dos operandos for null, o status do valor resultante COleDateTime será null.
Se o valor resultante COleDateTime estiver fora dos limites de valores aceitáveis, o status desse COleDateTime valor será inválido.
Se um dos operandos for inválido e o outro não for nulo, o status do valor resultante COleDateTime será inválido.
Os + operadores e - afirmarão se o COleDateTime objeto estiver definido como null. Consulte Operadores relacionais COleDateTime para obter um exemplo.
Para obter mais informações sobre os valores de status válido, inválido e nulo, consulte a variável membro m_status .
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
Exemplo
COleDateTime t1(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
COleDateTime t2(1999, 3, 20, 22, 15, 0); // 10:15PM March 20, 1999
// Subtract 2 COleDateTimes
COleDateTimeSpan ts = t2 - t1;
// one day is 24 * 60 * 60 == 86400 seconds
ASSERT(ts.GetTotalSeconds() == 86400L);
// Add a COleDateTimeSpan to a COleDateTime.
ASSERT((t1 + ts) == t2);
// Subtract a COleDateTimeSpan from a COleDateTime.
ASSERT((t2 - ts) == t1);
COleDateTime::operador +=, -=
Adicione e subtraia um ColeDateTime valor deste COleDateTime objeto.
COleDateTime& operator+=(COleDateTimeSpan dateSpan) throw();
COleDateTime& operator-=(COleDateTimeSpan dateSpan) throw();
Observações
Esses operadores permitem que você adicione e subtraia um COleDateTimeSpan valor para e a partir disso COleDateTime. Se qualquer um dos operandos for null, o status do valor resultante COleDateTime será null.
Se o valor resultante COleDateTime estiver fora dos limites de valores aceitáveis, o status desse COleDateTime valor será definido como inválido.
Se um dos operandos for inválido e outro não for nulo, o status do valor resultante COleDateTime será inválido.
Para obter mais informações sobre os valores de status válido, inválido e nulo, consulte a variável membro m_status .
Os += operadores e -= afirmarão se o COleDateTime objeto estiver definido como null. Consulte Operadores relacionais COleDateTime para obter um exemplo.
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
COleDateTime::operador DATE
Converte um ColeDateTime valor em um DATEarquivo .
operator DATE() const throw();
Observações
Este operador retorna um DATE objeto cujo valor é copiado desse COleDateTime objeto. Para obter mais informações sobre a implementação do DATE objeto, consulte o artigo Data e hora: suporte à automação.
O DATE operador declarará se o COleDateTime objeto estiver definido como null. Consulte Operadores relacionais COleDateTime para obter um exemplo.
COleDateTime::P arseDateTime
Analisa uma cadeia de caracteres para ler um valor de data/hora.
bool ParseDateTime(
LPCTSTR lpszDate,
DWORD dwFlags = 0,
LCID lcid = LANG_USER_DEFAULT) throw();
Parâmetros
lpszDate
Um ponteiro para a cadeia de caracteres terminada em nulo que deve ser analisada. Para obter detalhes, consulte Observações.
dwBandeiras
Indica sinalizadores para configurações de localidade e análise. Uma ou mais das seguintes bandeiras:
LOCALE_NOUSEROVERRIDE Use as configurações de localidade padrão do sistema, em vez de configurações de usuário personalizadas.
VAR_TIMEVALUEONLY Ignore a parte da data durante a análise.
VAR_DATEVALUEONLY Ignore a parte de tempo durante a análise.
LCID
Indica o ID de localidade a ser usado para a conversão.
Valor de retorno
Retorna TRUE se a cadeia de caracteres foi convertida com êxito em um valor de data/hora, caso contrário, FALSE.
Observações
Se a cadeia de caracteres foi convertida com êxito em um valor de data/hora, o valor desse COleDateTime objeto é definido como esse valor e seu status como válido.
Observação
Os valores anuais devem situar-se entre 100 e 9999, inclusive.
O parâmetro lpszDate pode assumir uma variedade de formatos. Por exemplo, as seguintes cadeias de caracteres contêm formatos de data/hora aceitáveis:
"25 January 1996"
"8:30:00"
"20:30:00"
"January 25, 1996 8:30:00"
"8:30:00 Jan. 25, 1996"
"1/25/1996 8:30:00" // always specify the full year, even in a 'short date' format
A ID de localidade também afetará se o formato de cadeia de caracteres é aceitável para conversão em um valor de data/hora.
No caso de VAR_DATEVALUEONLY, o valor de hora é definido como hora 0 ou meia-noite. No caso de VAR_TIMEVALUEONLY, o valor da data é definido como 0, ou seja, 30 de dezembro de 1899.
Se a cadeia de caracteres não puder ser convertida em um valor de data/hora ou se houver um estouro numérico, o status desse COleDateTime objeto será inválido.
Para obter mais informações sobre os limites e a implementação COleDateTime de valores, consulte o artigo Data e hora: suporte à automação.
COleDateTime::SetDate
Define a data deste COleDateTime objeto.
int SetDate(
int nYear,
int nMonth,
int nDay) throw();
Parâmetros
nAno
Indica o ano a ser copiado para este COleDateTime objeto.
nMês
Indica o mês a ser copiado para este COleDateTime objeto.
nDia
Indica o dia a ser copiado para este COleDateTime objeto.
Valor de retorno
Zero se o valor deste COleDateTime objeto foi definido com êxito, caso contrário, 1. Esse valor de retorno é baseado no DateTimeStatus tipo enumerado. Para obter mais informações, consulte a função de membro SetStatus .
Observações
A data é definida com os valores especificados. A hora está marcada para a hora 0, meia-noite.
Consulte a tabela a seguir para obter limites para os valores dos parâmetros:
| Parâmetro | Limites |
|---|---|
| nAno | 100 - 9999 |
| nMês | 1 - 12 |
| nDia | 0 - 31 |
Se o dia do mês transbordar, ele é convertido para o dia correto do mês seguinte e o mês e/ou ano é incrementado em conformidade. Um valor de dia zero indica o último dia do mês anterior. O comportamento é o mesmo que SystemTimeToVariantTime.
Se o valor de data especificado pelos parâmetros não for válido, o status deste objeto será definido como COleDateTime::invalid. Você deve usar GetStatus para verificar a DATE validade do valor e não deve assumir que o valor de m_dt permanecerá inalterado.
Aqui estão alguns exemplos de valores de data:
| nAno | nMês | nDia | Valor |
|---|---|---|---|
| 2000 | 2 | 29 | 29 de fevereiro de 2000 |
| 1776 | 7 | 4 | 4 de julho de 1776 |
| 1925 | 4 | 35 | 35 de abril de 1925 (data inválida) |
| 10 000 | 1 | 1 | 1 de janeiro de 10000 (data inválida) |
Para definir data e hora, consulte COleDateTime::SetDateTime.
Para obter informações sobre funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
Exemplo
// set only the date, time set to midnight
dt.SetDate(1999, 3, 19);
ASSERT(dt.GetYear() == 1999);
ASSERT(dt.GetDay() == 19);
ASSERT(dt.GetMonth() == 3);
ASSERT(dt.GetHour() == 0);
ASSERT(dt.GetMinute() == 0);
ASSERT(dt.GetSecond() == 0);
// setting the time only resets the date to 1899!
dt.SetTime(22, 15, 0);
ASSERT(dt.GetYear() == 1899);
ASSERT(dt.GetDay() == 30);
ASSERT(dt.GetMonth() == 12);
ASSERT(dt.GetHour() == 22);
ASSERT(dt.GetMinute() == 15);
ASSERT(dt.GetSecond() == 0);
COleDateTime::SetDateTime
Define a data e a hora deste COleDateTime objeto.
int SetDateTime(
int nYear,
int nMonth,
int nDay,
int nHour,
int nMin,
int nSec) throw();
Parâmetros
nAno, nMês, nDia, nHora, nMin, nSec
Indique os componentes de data e hora a serem copiados para este COleDateTime objeto.
Valor de retorno
Zero se o valor deste COleDateTime objeto foi definido com êxito, caso contrário, 1. Esse valor de retorno é baseado no DateTimeStatus tipo enumerado. Para obter mais informações, consulte a função de membro SetStatus .
Observações
Consulte a tabela a seguir para obter limites para os valores dos parâmetros:
| Parâmetro | Limites |
|---|---|
| nAno | 100 - 9999 |
| nMês | 1 - 12 |
| nDia | 0 - 31 |
| nHora | 0 - 23 |
| nMin | 0 - 59 |
| nSec | 0 - 59 |
Se o dia do mês transbordar, ele é convertido para o dia correto do mês seguinte e o mês e/ou ano é incrementado em conformidade. Um valor de dia zero indica o último dia do mês anterior. O comportamento é o mesmo que SystemTimeToVariantTime.
Se o valor de data ou hora especificado pelos parâmetros não for válido, o status deste objeto será definido como inválido e o valor desse objeto não será alterado.
Aqui estão alguns exemplos de valores de tempo:
| nHora | nMin | nSec | Valor |
|---|---|---|---|
| 1 | 3 | 3 | 01:03:03 |
| 23 | 45 | 0 | 23:45:00 |
| 25 | 30 | 0 | Inválido |
| 9 | 60 | 0 | Inválido |
Aqui estão alguns exemplos de valores de data:
| nAno | nMês | nDia | Valor |
|---|---|---|---|
| 1995 | 4 | 15 | 15 de abril de 1995 |
| 1789 | 7 | 14 | 17 de julho de 1789 |
| 1925 | 2 | 30 | Inválido |
| 10 000 | 1 | 1 | Inválido |
Para definir apenas a data, consulte COleDateTime::SetDate. Para definir apenas a hora, consulte COleDateTime::SetTime.
Para obter informações sobre funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
Exemplo
Consulte o exemplo de GetStatus.
COleDateTime::SetStatus
Define o status desse COleDateTime objeto.
void SetStatus(DateTimeStatus status) throw();
Parâmetros
Situação
O novo valor de status para este COleDateTime objeto.
Observações
O valor do parâmetro DateTimeStatus é definido pelo tipo enumerado, que é definido dentro da COleDateTime classe. Consulte COleDateTime::GetStatus para obter detalhes.
Atenção
Esta função é para situações de programação avançada. Esta função não altera os dados neste objeto. Na maioria das vezes, ele será usado para definir o status como nulo ou inválido. O operador de atribuição (operador =) e SetDateTime definem o status do objeto com base no(s) valor(es) de origem.
Exemplo
Consulte o exemplo de GetStatus.
COleDateTime::SetTime
Define a hora deste COleDateTime objeto.
int SetTime(
int nHour,
int nMin,
int nSec) throw();
Parâmetros
nHora, nMin, nSec
Indique os componentes de tempo a serem copiados para este COleDateTime objeto.
Valor de retorno
Zero se o valor deste COleDateTime objeto foi definido com êxito, caso contrário, 1. Esse valor de retorno é baseado no DateTimeStatus tipo enumerado. Para obter mais informações, consulte a função de membro SetStatus .
Observações
A hora é definida para os valores especificados. A data está marcada para a data 0, ou seja, 30 de dezembro de 1899.
Consulte a tabela a seguir para obter limites para os valores dos parâmetros:
| Parâmetro | Limites |
|---|---|
| nHora | 0 - 23 |
| nMin | 0 - 59 |
| nSec | 0 - 59 |
Se o valor de tempo especificado pelos parâmetros não for válido, o status deste objeto será definido como inválido e o valor desse objeto não será alterado.
Aqui estão alguns exemplos de valores de tempo:
| nHora | nMin | nSec | Valor |
|---|---|---|---|
| 1 | 3 | 3 | 01:03:03 |
| 23 | 45 | 0 | 23:45:00 |
| 25 | 30 | 0 | Inválido |
| 9 | 60 | 0 | Inválido |
Para definir data e hora, consulte COleDateTime::SetDateTime.
Para obter informações sobre funções de membro que consultam o valor desse COleDateTime objeto, consulte as seguintes funções de membro:
Para obter mais informações sobre os limites para COleDateTime valores, consulte o artigo Data e hora: suporte à automação.
Exemplo
Veja o exemplo de SetDate.
Ver também
Classe COleVariant
Classe CTime
Classe CTimeSpan
Gráfico de Hierarquia
Classes compartilhadas ATL/MFC