Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) e a Active Template Library (ATL) continuam a ser suportadas. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Representa um tempo relativo, um intervalo de tempo.
Sintaxe
class COleDateTimeSpan
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| COleDateTimeSpan::COleDateTimeSpan | Constrói um COleDateTimeSpan objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
| COleDataTempoPeríodo::Formato | Gera uma representação formatada de cadeia de caracteres de um COleDateTimeSpan objeto. |
| COleDataTempoPeríodo::ObterDiasDias | Devolve a porção do dia do vão que este COleDateTimeSpan objeto representa. |
| ColeDataTempoPeríodo::ConseguirHorasHoras | Devolve a porção horária do intervalo que este COleDateTimeSpan objeto representa. |
| ColeDataTempoPeríodo::ReceberMinutosT | Devolve a porção minúscula do espaço que este COleDateTimeSpan objeto representa. |
| COleDataTempoEspaço::ReceberSegundos | Devolve a segunda parte do espaço que este COleDateTimeSpan objeto representa. |
| COleDataTempoPeríodo::ObtenerEstatutoAtual | Obtém o status (validade) deste COleDateTimeSpan objeto. |
| ColeDataTempoEspaço::ReceberDiasTotaisT | Devolve o número de dias que este COleDateTimeSpan objeto representa. |
| COleDataTempoPeríodo::ObténHorasTotal | Devolve o número de horas que este COleDateTimeSpan objeto representa. |
| COleDataTempoTempo::ObténTotalMinutosT | Devolve o número de minutos que este COleDateTimeSpan objeto representa. |
| COleDataTempoTempo::ReceberTotalSegundos | Devolve o número de segundos que este COleDateTimeSpan objeto representa. |
| COleDataTempoEspaço::DefinidoDataTempoIntervalo | Define o valor deste COleDateTimeSpan objeto. |
| COleDataTempoPeríodo::SetStatus | Define o estado (validade) deste COleDateTimeSpan objeto. |
Operadores Públicos
| Nome | Description |
|---|---|
| operador +, - | Soma, subtrai e muda o sinal para os COleDateTimeSpan valores. |
| operador +=, -= | Soma e subtrai um COleDateTimeSpan valor a esse COleDateTimeSpan valor. |
| operador = | Copia um COleDateTimeSpan valor. |
| operador ==, <, <= | Compare dois COleDateTimeSpan valores. |
| Duplo operador | Converte este COleDateTimeSpan valor para um double. |
Membros de Dados Públicos
| Nome | Description |
|---|---|
| COLEDateTimeSpan::m_span | Contém o subjacente double para este COleDateTimeSpan objeto. |
| COLEDateTimeSpan::m_status | Contém o status deste COleDateTimeSpan objeto. |
Observações
COleDateTimeSpan não tem uma classe base.
A COleDateTimeSpan marca o tempo em dias.
COleDateTimeSpan é usado com a sua classe companheira COleDateTime.
COleDateTime encapsula o DATE tipo de dados da automação OLE.
COleDateTime representa valores absolutos de tempo. Todos os COleDateTime cálculos envolvem COleDateTimeSpan valores. A relação entre estas classes é análoga à que existe entre CTime e CTimeSpan.
Para mais informações sobre as COleDateTime e COleDateTimeSpan classes, consulte o artigo Data e Hora: Suporte à Automação.
Requerimentos
Cabeçalho: ATLComTime.h
Operadores Relacionais COleDateTimeSpan
Operadores de comparação.
bool operator==(const COleDateTimeSpan& dateSpan) const throw();
bool operator!=(const COleDateTimeSpan& dateSpan) const throw();
bool operator<(const COleDateTimeSpan& dateSpan) const throw();
bool operator>(const COleDateTimeSpan& dateSpan) const throw();
bool operator<=(const COleDateTimeSpan& dateSpan) const throw();
bool operator>=(const COleDateTimeSpan& dateSpan) const throw();
Parâmetros
dataIntervalo
O COleDateTimeSpan para comparar.
Valor de retorno
Estes operadores comparam dois valores de data/intervalo temporal e devolvem TRUE se a condição for verdadeira; caso contrário, FALSO.
Observações
Observação
Um ATLASSERT ocorrerá se qualquer um dos operandos for inválido.
Example
COleDateTimeSpan spanOne(3, 12, 0, 0); // 3 days and 12 hours
COleDateTimeSpan spanTwo(spanOne); // 3 days and 12 hours
BOOL b;
b = spanOne == spanTwo; // TRUE
b = spanOne < spanTwo; // FALSE, same value
b = spanOne > spanTwo; // FALSE, same value
b = spanOne <= spanTwo; // TRUE, same value
b = spanOne >= spanTwo; // TRUE, same value
spanTwo.SetStatus(COleDateTimeSpan::invalid);
b = spanOne == spanTwo; // FALSE, different status
b = spanOne != spanTwo; // TRUE, different status
COleDateTimeSpan ts1(100.0); // one hundred days
COleDateTimeSpan ts2(110.0); // ten more days
ASSERT((ts1 != ts2) && (ts1 < ts2) && (ts1 <= ts2));
COleDateTimeSpan::COleDateTimeSpan
Constrói um COleDateTimeSpan objeto.
COleDateTimeSpan() throw();
COleDateTimeSpan(double dblSpanSrc) throw();
COleDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Parâmetros
dblSpanSrc
O número de dias a copiar para o novo COleDateTimeSpan objeto.
Dias, nHoras, nMins, nSegs
Indique os valores do dia e da hora a serem copiados para o novo COleDateTimeSpan objeto.
Observações
Todos esses construtores criam novos COleDateTimeSpan objetos inicializados para o valor especificado. Segue-se uma breve descrição de cada um destes construtores:
COleDateTimeSpan( ) Constrói um
COleDateTimeSpanobjeto inicializado a 0.COleDateTimeSpan(
dblSpanSrc) constrói umCOleDateTimeSpanobjeto a partir de um valor de ponto flutuante.COleDateTimeSpan(
lDays,nHours,nMins,)nSecsConstrói umCOleDateTimeSpanobjeto inicializado com os valores numéricos especificados.
O estado do novo COleDateTimeSpan objeto é definido como válido.
Para mais informações sobre os limites dos COleDateTimeSpan valores, consulte o artigo Data e Hora: Suporte à Automação.
Example
COleDateTimeSpan spanOne(2.75); // 2 days and 18 hours
COleDateTimeSpan spanTwo(2, 18, 0, 0); // 2 days and 18 hours
COleDateTimeSpan spanThree(3, -6, 0, 0); // 2 days and 18 hours
COleDateTimeSpan ts1; // Uninitialized time value
COleDateTimeSpan ts2a(ts1); // Copy constructor
COleDateTimeSpan ts2b = ts1; // Copy constructor again
COleDateTimeSpan ts3(100.0); // 100 days
COleDateTimeSpan ts4(0, 1, 5, 12); // 1 hour, 5 minutes, and 12 seconds
COleDataTempoPeríodo::Formato
Gera uma representação formatada de cadeia de caracteres de um COleDateTimeSpan objeto.
CString Format(LPCTSTR pFormat) const;
CString Format(UINT nID) const;
Parâmetros
pFormat
Uma cadeia de formatação semelhante à printf cadeia de formatação. Os códigos de formatação, precedidos por um sinal de percentagem (%), são substituídos pelo componente correspondente COleDateTimeSpan . Outros caracteres na cadeia de formatação são copiados inalterados para a cadeia devolvida. O valor e significado dos códigos Format de formatação para estão listados abaixo:
%H Horas nos dias atuais
%M Atas na hora atual
%S Segundos no minuto atual
%% Sinal de percentagem
Os quatro códigos de formato listados acima são os únicos que o Format aceita.
-
nID
O ID do recurso para a cadeia de controlo de formato.
Valor de retorno
A CString que contém o valor formatado data/intervalo temporal.
Observações
Chame estas funções para criar uma representação formatada do valor do intervalo de tempo. Se o status desse COleDateTimeSpan objeto for null, o valor de retorno será uma cadeia de caracteres vazia. Se o estado for inválido, a cadeia de retorno é especificada pelo recurso de cadeia IDS_INVALID_DATETIMESPAN.
Segue-se uma breve descrição das formas desta função:
Format(pFormat)
Este formulário formata o valor usando a cadeia de formato que contém códigos de formatação especiais precedidos por um sinal de percentagem (%), como em printf. A cadeia de formatação é passada como um parâmetro à função.
Format(nID)
Este formulário formata o valor usando a cadeia de formato que contém códigos de formatação especiais precedidos por um sinal de percentagem (%), como em printf. A cadeia de formatação é um recurso. O ID deste recurso string é passado como parâmetro.
Example
// get the current time
COleDateTime tmStart = COleDateTime::GetCurrentTime();
// waste some time
CString str;
::Sleep(3000);
// get the current time again
COleDateTime tmFinish = COleDateTime::GetCurrentTime();
// find the difference
COleDateTimeSpan tmSpan = tmFinish - tmStart;
// tell the user
str = tmSpan.Format(_T("%S seconds elapsed"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
COleDataTempoPeríodo::ObterDiasDias
Recupera a porção do dia deste valor de data/intervalo de tempo.
LONG GetDays() const throw();
Valor de retorno
A parte do dia deste valor de data/intervalo temporal.
Observações
Os valores de retorno desta função variam aproximadamente entre 3.615.000 e 3.615.000.
Para outras funções que questionam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetDays() == 3);
ColeDataTempoPeríodo::ConseguirHorasHoras
Recupera a parte da hora deste valor de data/horário.
LONG GetHours() const throw();
Valor de retorno
A parte das horas deste valor de data/intervalo temporal.
Observações
Os valores de retorno desta função variam entre - 23 e 23.
Para outras funções que questionam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetHours() == 1);
ColeDataTempoPeríodo::ReceberMinutosT
Recupera a porção minuta deste valor data/intervalo temporal.
LONG GetMinutes() const throw();
Valor de retorno
A parte de minutos deste valor data/intervalo temporal.
Observações
Os valores de retorno desta função variam entre - 59 e 59.
Para outras funções que questionam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetMinutes() == 5);
COleDataTempoEspaço::ReceberSegundos
Recupera a segunda parte deste valor de data/intervalo temporal.
LONG GetSeconds() const throw();
Valor de retorno
A parte dos segundos deste valor data/intervalo temporal.
Observações
Os valores de retorno desta função variam entre - 59 e 59.
Para outras funções que questionam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetSeconds() == 12);
COleDataTempoPeríodo::ObtenerEstatutoAtual
Obtém o status (validade) deste COleDateTimeSpan objeto.
DateTimeSpanStatus GetStatus() const throw();
Valor de retorno
O estatuto deste COleDateTimeSpan valor.
Observações
O valor de retorno é definido pelo DateTimeSpanStatus tipo enumerado, que é definido dentro da COleDateTimeSpan classe.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Para obter uma breve descrição desses valores de status, consulte a seguinte lista:
COleDateTimeSpan::validIndica que esteCOleDateTimeSpanobjeto é válido.COleDateTimeSpan::invalidIndica que esseCOleDateTimeSpanobjeto é inválido, ou seja, seu valor pode estar incorreto.COleDateTimeSpan::nullIndica que esseCOleDateTimeSpanobjeto é 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 COleDateTimeSpan objeto é inválido nos seguintes casos:
Se este objeto sofreu um transbordamento ou subfluxo durante uma operação de atribuição aritmética, nomeadamente,
+=ou-=.Se um valor inválido foi atribuído a este objeto.
Se o estado deste objeto foi explicitamente definido como inválido usando
SetStatus.
Para mais informações sobre as operações que podem definir o estado como inválido, veja COleDateTimeSpan::operator +, - e COleDateTimeSpan::operator +=, -=.
Para mais informações sobre os limites dos COleDateTimeSpan valores, consulte o artigo Data e Hora: Suporte à Automação.
ColeDataTempoEspaço::ReceberDiasTotaisT
Recupera este valor de data/período expresso em dias.
double GetTotalDays() const throw();
Valor de retorno
Este valor de data/intervalo de tempo expresso em dias. Embora esta função seja prototipada para devolver um duplo, ela devolverá sempre um valor inteiro.
Observações
Os valores de retorno desta função variam aproximadamente entre 3,65e6 e 3,65e6.
Para outras funções que questionam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetTotalDays() == 3);
ASSERT(ts.GetTotalHours() == 73);
ASSERT(ts.GetTotalMinutes() == 4385);
ASSERT(ts.GetTotalSeconds() == 263112);
COleDataTempoPeríodo::ObténHorasTotal
Recupera este valor de data/período de tempo expresso em horas.
double GetTotalHours() const throw();
Valor de retorno
Este valor de data/período de tempo expresso em horas. Embora esta função seja prototipada para devolver um duplo, ela devolverá sempre um valor inteiro.
Observações
Os valores de retorno desta função variam aproximadamente entre - 8,77e7 e 8,77e7.
Para outras funções que questionam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
Veja o exemplo do GetTotalDays.
COleDataTempoTempo::ObténTotalMinutosT
Recupera este valor de data/tempo expresso em minutos.
double GetTotalMinutes() const throw();
Valor de retorno
Este valor data/tempo expresso em minutos. Embora esta função seja prototipada para devolver um duplo, ela devolverá sempre um valor inteiro.
Observações
Os valores de retorno desta função variam aproximadamente entre 5,26e9 e 5,26e9.
Para outras funções que questionam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
Veja o exemplo do GetTotalDays.
COleDataTempoTempo::ReceberTotalSegundos
Recupera este valor de data/intervalo de tempo expresso em segundos.
double GetTotalSeconds() const throw();
Valor de retorno
Este valor de data/tempo expresso em segundos. Embora esta função seja prototipada para devolver um duplo, ela devolverá sempre um valor inteiro.
Observações
Os valores de retorno desta função variam aproximadamente entre 3.16e11 e 3.16e11.
Para outras funções que questionam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
Veja o exemplo do GetTotalDays.
COLEDateTimeSpan::m_span
O valor subjacente double deste COleDateTime objeto.
double m_span;
Observações
Este valor expressa a data/intervalo de tempo em dias.
Atenção
Alterar o valor no double membro de dados alterará o valor deste COleDateTimeSpan objeto. Ele não altera o status deste COleDateTimeSpan objeto.
COLEDateTimeSpan::m_status
O tipo para este membro de dados é o tipo DateTimeSpanStatusenumerado , que é definido dentro da COleDateTimeSpan classe.
DateTimeSpanStatus m_status;
Observações
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Para obter uma breve descrição desses valores de status, consulte a seguinte lista:
COleDateTimeSpan::validIndica que esteCOleDateTimeSpanobjeto é válido.COleDateTimeSpan::invalidIndica que esseCOleDateTimeSpanobjeto é inválido, ou seja, seu valor pode estar incorreto.COleDateTimeSpan::nullIndica que esseCOleDateTimeSpanobjeto é 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 COleDateTimeSpan objeto é inválido nos seguintes casos:
Se este objeto sofreu um transbordamento ou subfluxo durante uma operação de atribuição aritmética, nomeadamente,
+=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 mais informações sobre as operações que podem definir o estado como inválido, veja COleDateTimeSpan::operator +, - e COleDateTimeSpan::operator +=, -=.
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.
Para mais informações sobre os limites dos COleDateTimeSpan valores, consulte o artigo Data e Hora: Suporte à Automação.
COleDateTimeSpan::operator =
Copia um COleDateTimeSpan valor.
COleDateTimeSpan& operator=(double dblSpanSrc) throw();
Observações
Este operador de atribuição sobrecarregado copia o valor data/intervalo de tempo de origem para este COleDateTimeSpan objeto.
COleDateTimeSpan::operator +, -
Soma, subtrai e muda o sinal para os COleDateTimeSpan valores.
COleDateTimeSpan operator+(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-() const throw();
Observações
Os dois primeiros operadores permitem adicionar e subtrair valores de data/intervalo temporal. A terceira permite alterar o signo de um valor de data/intervalo de tempo.
Se qualquer um dos operandos for null, o status do valor resultante COleDateTimeSpan será null.
Se algum dos operandos for inválido e o outro não for nulo, o estado do valor resultante COleDateTimeSpan é 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 .
Example
COleDateTimeSpan ts1(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
COleDateTimeSpan ts2(100.0 / (24 * 3600.0)); // 100 seconds
COleDateTimeSpan ts3 = ts1 + ts2;
ASSERT(ts3.GetSeconds() == 52); // 6 mins, 52 secs
COleDateTimeSpan::operator +=, -=
Soma e subtrai um COleDateTimeSpan valor a esse COleDateTimeSpan valor.
COleDateTimeSpan& operator+=(const COleDateTimeSpan dateSpan) throw();
COleDateTimeSpan& operator-=(const COleDateTimeSpan dateSpan) throw();
Observações
Estes operadores permitem-lhe adicionar e subtrair valores de data/intervalo temporal deste COleDateTimeSpan objeto. Se qualquer um dos operandos for null, o status do valor resultante COleDateTimeSpan será null.
Se algum dos operandos for inválido e o outro não for nulo, o estado do valor resultante COleDateTimeSpan é 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 .
Example
COleDateTimeSpan ts1(10.0); // 10 days
COleDateTimeSpan ts2(100.0); // 100 days
ts2 -= ts1;
ASSERT(ts2.GetTotalDays() == 90);
COleDataTempoTempo::operador duplo
Converte este COleDateTimeSpan valor para um double.
operator double() const throw();
Observações
Este operador devolve o valor desse COleDateTimeSpan valor como um número de dias em ponto flutuante.
COleDataTempoEspaço::DefinidoDataTempoIntervalo
Define o valor deste valor de data/período-período.
void SetDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Parâmetros
Dias, nHoras, nMins, nSegs
Indique os valores de data-intervalo e de tempo a serem copiados para este COleDateTimeSpan objeto.
Observações
Para funções que consultam o valor de um COleDateTimeSpan objeto, veja as seguintes funções membro:
Example
COleDateTimeSpan spanOne;
COleDateTimeSpan spanTwo;
spanOne.SetDateTimeSpan(0, 2, 45, 0); // 2 hours and 45 seconds
spanTwo.SetDateTimeSpan(0, 3, -15, 0); // 2 hours and 45 seconds
COleDataTempoPeríodo::SetStatus
Define o estado (validade) deste COleDateTimeSpan objeto.
void SetStatus(DateTimeSpanStatus status) throw();
Parâmetros
Situação
O novo valor de estado para este COleDateTimeSpan objeto.
Observações
O valor do parâmetro de Estado é definido pelo DateTimeSpanStatus tipo enumerado, que é definido dentro da COleDateTimeSpan classe.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
Para obter uma breve descrição desses valores de status, consulte a seguinte lista:
COleDateTimeSpan::validIndica que esteCOleDateTimeSpanobjeto é válido.COleDateTimeSpan::invalidIndica que esseCOleDateTimeSpanobjeto é inválido, ou seja, seu valor pode estar incorreto.COleDateTimeSpan::nullIndica que esseCOleDateTimeSpanobjeto é 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.)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, será usado para definir o estado como nulo ou inválido. Note que o operador de atribuição (operador =) e o SetDateTimeSpan definem o estado do objeto com base no(s) valor(is) fonte(s).
Example
// if the person is not still in school, set days to graduation to null
if (!m_bStillInSchool || m_dtDateOfGraduation.GetStatus() == COleDateTime::null)
m_dtsDaysToGraduation.SetStatus(COleDateTimeSpan::null);
Consulte também
Classe COleDateTime
Classe CTime
Classe CTimeSpan
Gráfico de Hierarquia
Classes compartilhadas ATL/MFC