Compartilhar via


Classe CTimeSpan

Uma quantidade de tempo, que é armazenada internamente como o número de segundos no período de tempo.

Sintaxe

class CTimeSpan

Membros

Construtores públicos

Nome Descrição
CTimeSpan::CTimeSpan Constrói objetos CTimeSpan de várias maneiras.

Métodos públicos

Nome Descrição
CTimeSpan::Format Converte um CTimeSpan em uma cadeia de caracteres formatada.
CTimeSpan::GetDays Retorna um valor que representa o número de dias completos neste CTimeSpan.
CTimeSpan::GetHours Retorna um valor que representa o número de horas no dia atual (-23 a 23).
CTimeSpan::GetMinutes Retorna um valor que representa o número de minutos na hora atual (-59 a 59).
CTimeSpan::GetSeconds Retorna um valor que representa o número de segundos no minuto atual (-59 a 59).
CTimeSpan::GetTimeSpan Retorna o valor do objeto CTimeSpan.
CTimeSpan::GetTotalHours Retorna um valor que representa o número total de horas completas neste CTimeSpan.
CTimeSpan::GetTotalMinutes Retorna um valor que representa o número total de minutos completos neste CTimeSpan.
CTimeSpan::GetTotalSeconds Retorna um valor que representa o número total de segundos completos neste CTimeSpan.
CTimeSpan::Serialize64 Serializa dados de um arquivo ou para ele.

Operadores

Nome Descrição
operator + - Adiciona e subtrai objetos CTimeSpan.
operator += -= Adiciona e subtrai um objeto CTimeSpan de e para este CTimeSpan.
operator == < etc. Compara dois valores temporais relativos.

Comentários

CTimeSpan não tem uma classe base.

CTimeSpan as funções convertem segundos em várias combinações de dias, horas, minutos e segundos.

O CTimeSpan objeto é armazenado em uma __time64_t estrutura, que é de 8 bytes.

Uma classe complementar representa CTimeum tempo absoluto.

As CTime classes e não CTimeSpan foram projetadas para derivação. Como não há funções virtuais, o tamanho de ambos CTime e CTimeSpan objetos é exatamente 8 bytes. A maioria das funções de membro está embutida.

Para obter mais informações sobre como usar CTimeSpan, confira os artigos Data e Hora e Gerenciamento de Tempo na Referência da Biblioteca em Tempo de Execução.

Requisitos

Cabeçalhoatltime.h:

CTimeSpan Operadores de comparação

Operadores de comparação.

bool operator==(CTimeSpan span) const throw();
bool operator!=(CTimeSpan span) const throw();
bool operator<(CTimeSpan span) const throw();
bool operator>(CTimeSpan span) const throw();
bool operator<=(CTimeSpan span) const throw();
bool operator>=(CTimeSpan span) const throw();

Parâmetros

span
O objeto a ser comparado.

Valor de Devolução

Esses operadores comparam dois valores de tempo relativos. Eles retornam TRUE se a condição for verdadeira; caso contrário FALSE.

Exemplo

CTimeSpan ts1(100);
CTimeSpan ts2(110);
ATLASSERT((ts1 != ts2) && (ts1 < ts2) && (ts1 <= ts2));   

CTimeSpan::CTimeSpan

Constrói objetos CTimeSpan de várias maneiras.

CTimeSpan() throw();
CTimeSpan(__time64_t time) throw();

CTimeSpan(
    LONG lDays,
    int nHours,
    int nMins,
    int nSecs) throw();

Parâmetros

timeSpanSrc
Um CTimeSpan objeto que já existe.

time
Um __time64_t valor de tempo, que é o número de segundos no período de tempo.

lDays, nHours, nMins, nSecs
Dias, horas, minutos e segundos, respectivamente.

Comentários

Todos esses construtores criam um novo CTimeSpan objeto inicializado com o tempo relativo especificado. Cada construtor é descrito abaixo:

  • CTimeSpan( ); Constrói um objeto CTimeSpan não inicializado.

  • CTimeSpan( const CTimeSpan& ); Constrói um objeto CTimeSpan com base em outro valor CTimeSpan.

  • CTimeSpan( __time64_t ); Constrói um objeto CTimeSpan com base em um tipo __time64_t.

  • CTimeSpan( LONG, int, int, int ); Constrói um objeto CTimeSpan de componentes com cada componente restrito aos seguintes intervalos:

    Componente Intervalo
    lDays 0-25,000 (aproximadamente)
    nHours 0-23
    nMins 0-59
    nSecs 0-59

Observe que a versão de depuração da Biblioteca de Classes do Microsoft Foundation afirma se um ou mais componentes do dia estão fora do intervalo. É sua responsabilidade validar os argumentos antes da chamada.

Exemplo

CTimeSpan ts1;  // Uninitialized time value
CTimeSpan ts2a(ts1); // Copy constructor
CTimeSpan ts2b = ts1; // Copy constructor again
CTimeSpan ts3(100); // 100 seconds
CTimeSpan ts4(0, 1, 5, 12);    // 1 hour, 5 minutes, and 12 seconds   

CTimeSpan::Format

Gera uma cadeia de caracteres formatada que corresponde a esse CTimeSpan.

CString Format(LPCSTR pFormat) const;
CString Format(LPCTSTR pszFormat) const;
CString Format(UINT nID) const;

Parâmetros

pFormat, pszFormat
Uma cadeia de caracteres de formatação semelhante à cadeia de caracteres de formatação printf. Os códigos de formatação, precedidos por um sinal de porcentagem (%), são substituídos pelo componente CTimeSpan correspondente. Outros caracteres na cadeia de caracteres de formatação são copiados sem alteração para a cadeia de caracteres retornada. O valor e o significado dos códigos de formatação para Format os quais estão listados abaixo:

  • %D Total de dias neste CTimeSpan

  • %H Horas no dia atual

  • %M Minutos na hora atual

  • %S Segundos no minuto atual

  • Sinal de porcentagem %%

nID
A ID da cadeia de caracteres que identifica esse formato.

Valor de Devolução

Um CString objeto que contém o tempo formatado.

Comentários

A versão de depuração da biblioteca verifica os códigos de formatação e afirma se o código não está na lista acima.

Exemplo

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
CString s = ts.Format(_T("Total days: %D, hours: %H, mins: %M, secs: %S"));
ATLASSERT(s == _T("Total days: 3, hours: 01, mins: 05, secs: 12"));   

CTimeSpan::GetDays

Retorna um valor que representa o número de dias completos neste CTimeSpan.

LONGLONG GetDays() const throw();

Valor de Devolução

Retorna o número de dias completos de 24 horas no período de tempo. Esse valor poderá ser negativo se o período de tempo for negativo.

Comentários

Observe que o Horário de Verão (DST) pode causar GetDays um resultado potencialmente surpreendente. Por exemplo, quando o DST está em vigor, GetDays relata o número de dias entre 1º de abril e 1º de maio como 29, não 30, porque um dia em abril é reduzido em uma hora e, portanto, não conta como um dia completo.

Exemplo

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ATLASSERT(ts.GetDays() == 3);   

CTimeSpan::GetHours

Retorna um valor que representa o número de horas no dia atual (-23 a 23).

LONG GetHours() const throw();

Valor de Devolução

Retorna o número de horas no dia atual. O intervalo é -23 a 23.

Exemplo

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ATLASSERT(ts.GetHours() == 1);
ATLASSERT(ts.GetMinutes() == 5);
ATLASSERT(ts.GetSeconds() == 12);   

CTimeSpan::GetMinutes

Retorna um valor que representa o número de minutos na hora atual (-59 a 59).

LONG GetMinutes() const throw();

Valor de Devolução

Retorna o número de minutos na hora atual. O intervalo é -59 a 59.

Exemplo

Confira o exemplo de GetHours.

CTimeSpan::GetSeconds

Retorna um valor que representa o número de segundos no minuto atual (-59 a 59).

LONG GetSeconds() const throw();

Valor de Devolução

Retorna o número de segundos no minuto atual. O intervalo é -59 a 59.

Exemplo

Confira o exemplo de GetHours.

CTimeSpan::GetTimeSpan

Retorna o valor do objeto CTimeSpan.

__ time64_t GetTimeSpan() const throw();

Valor de Devolução

Retorna o valor atual do objeto CTimeSpan.

CTimeSpan::GetTotalHours

Retorna um valor que representa o número total de horas completas neste CTimeSpan.

LONGLONG GetTotalHours() const throw();

Valor de Devolução

Retorna o número total de horas completas neste CTimeSpan.

Exemplo

CTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ATLASSERT(ts.GetTotalHours() == 73);
ATLASSERT(ts.GetTotalMinutes() == 4385);
ATLASSERT(ts.GetTotalSeconds() == 263112);   

CTimeSpan::GetTotalMinutes

Retorna um valor que representa o número total de minutos completos neste CTimeSpan.

LONGLONG GetTotalMinutes() const throw();

Valor de Devolução

Retorna o número total de minutos completos neste CTimeSpan.

Exemplo

Confira o exemplo de GetTotalHours.

CTimeSpan::GetTotalSeconds

Retorna um valor que representa o número total de segundos completos neste CTimeSpan.

LONGLONG GetTotalSeconds() const throw();

Valor de Devolução

Retorna o número total de segundos completos neste CTimeSpan.

Exemplo

Confira o exemplo de GetTotalHours.

CTimeSpan::operator +, CTimeSpan::operator -

Adiciona e subtrai objetos CTimeSpan.

CTimeSpan operator+(CTimeSpan span) const throw();
CTimeSpan operator-(CTimeSpan span) const throw();

Parâmetros

span
O valor a ser adicionado ao objeto CTimeSpan.

Valor de Devolução

Um objeto CTimeSpan que representa o resultado da operação.

Comentários

Esses dois operadores permitem adicionar e subtrair CTimeSpan objetos entre si.

Exemplo

CTimeSpan ts1(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
CTimeSpan ts2(100); // 100 seconds
CTimeSpan ts3 = ts1 + ts2;
ATLASSERT(ts3.GetSeconds() == 52); // 6 mins, 52 secs   

CTimeSpan::operator +=, CTimeSpan::operator -=

Adiciona e subtrai um objeto CTimeSpan de e para este CTimeSpan.

CTimeSpan& operator+=(CTimeSpan span) throw();
CTimeSpan& operator-=(CTimeSpan span) throw();

Parâmetros

span
O valor a ser adicionado ao objeto CTimeSpan.

Valor de Devolução

O objeto atualizado CTimeSpan.

Comentários

Esses operadores permitem adicionar e subtrair um objeto CTimeSpan de e para este CTimeSpan.

Exemplo

CTimeSpan ts1(10); // 10 seconds
CTimeSpan ts2(100); // 100 seconds
ts2 -= ts1;
ATLASSERT(ts2.GetTotalSeconds() == 90);   

CTimeSpan::Serialize64

Observação

Esse método só está disponível em projetos MFC.

Serializa os dados associados à variável de membro de um arquivo morto ou para ele.

CArchive& Serialize64(CArchive& ar);

Parâmetros

ar
O objeto CArchive que você deseja atualizar.

Valor de Devolução

O objeto atualizado CArchive.

Confira também

asctime, _wasctime
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime, _localtime32, _localtime64
strftime, wcsftime, _strftime_l, _wcsftime_l
time, _time32, _time64
Gráfico da hierarquia
Classes compartilhadas ATL/MFC