Partilhar via


Classe COleDateTimeSpan

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 COleDateTimeSpan objeto inicializado a 0.

  • COleDateTimeSpan(dblSpanSrc) constrói um COleDateTimeSpan objeto a partir de um valor de ponto flutuante.

  • COleDateTimeSpan(lDays,nHours,nMins,)nSecs Constrói umCOleDateTimeSpan objeto 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::valid Indica que este COleDateTimeSpan objeto é válido.

  • COleDateTimeSpan::invalid Indica que esse COleDateTimeSpan objeto é inválido, ou seja, seu valor pode estar incorreto.

  • COleDateTimeSpan::null Indica que esse COleDateTimeSpan objeto é 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::valid Indica que este COleDateTimeSpan objeto é válido.

  • COleDateTimeSpan::invalid Indica que esse COleDateTimeSpan objeto é inválido, ou seja, seu valor pode estar incorreto.

  • COleDateTimeSpan::null Indica que esse COleDateTimeSpan objeto é 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::valid Indica que este COleDateTimeSpan objeto é válido.

  • COleDateTimeSpan::invalid Indica que esse COleDateTimeSpan objeto é inválido, ou seja, seu valor pode estar incorreto.

  • COleDateTimeSpan::null Indica que esse COleDateTimeSpan objeto é 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