Compartir a través de


COleDateTimeSpan (Clase)

Representa un tiempo relativo, un intervalo de tiempo.

Sintaxis

class COleDateTimeSpan

Miembros

Constructores públicos

Nombre Descripción
COleDateTimeSpan::COleDateTimeSpan Construye un objeto COleDateTimeSpan.

Métodos públicos

Nombre Descripción
COleDateTimeSpan::Format Genera una representación de cadena con formato de un objeto COleDateTimeSpan.
COleDateTimeSpan::GetDays Devuelve la parte del día del intervalo que representa este objeto COleDateTimeSpan.
COleDateTimeSpan::GetHours Devuelve la parte de la hora del intervalo que representa este objeto COleDateTimeSpan.
COleDateTimeSpan::GetMinutes Devuelve la parte de los minutos del intervalo que representa este objeto COleDateTimeSpan.
COleDateTimeSpan::GetSeconds Devuelve la parte de los segundos del intervalo que representa este objeto COleDateTimeSpan.
COleDateTimeSpan::GetStatus Obtiene el estado (validez) de este objeto COleDateTimeSpan.
COleDateTimeSpan::GetTotalDays Devuelve el número de días que representa este objeto COleDateTimeSpan.
COleDateTimeSpan::GetTotalHours Devuelve el número de horas que representa este objeto COleDateTimeSpan.
COleDateTimeSpan::GetTotalMinutes Devuelve el número de minutos que representa este objeto COleDateTimeSpan.
COleDateTimeSpan::GetTotalSeconds Devuelve el número de segundos que representa este objeto COleDateTimeSpan.
COleDateTimeSpan::SetDateTimeSpan Establece el valor de este objeto COleDateTimeSpan.
COleDateTimeSpan::SetStatus Establece el estado (validez) de este objeto COleDateTimeSpan.

Operadores públicos

Nombre Descripción
operador +, - Agregue, reste y cambie el signo de los valores COleDateTimeSpan.
operador +=, -= Agregue y reste un valor COleDateTimeSpan de este valor COleDateTimeSpan.
operator = Copia un valor COleDateTimeSpan.
operator ==, <, <= Compare dos valores COleDateTimeSpan.
operador double Convierte este valor COleDateTimeSpan en un objeto double.

Miembros de datos públicos

Nombre Descripción
COleDateTimeSpan::m_span Contiene el objeto subyacente double para este objeto COleDateTimeSpan.
COleDateTimeSpan::m_status Contiene el estado de este objeto COleDateTimeSpan.

Comentarios

COleDateTimeSpan no tiene una clase base.

Un objeto COleDateTimeSpan mantiene el tiempo en días.

COleDateTimeSpan se usa con su clase complementaria COleDateTime. COleDateTime encapsula el tipo de datos DATE de la automatización OLE. COleDateTime representa valores de hora absolutos. Todos los cálculos de COleDateTime implican valores COleDateTimeSpan. La relación entre estas clases es análoga a la que hay entre CTime y CTimeSpan.

Para más información sobre las clases COleDateTime y COleDateTimeSpan, consulte el artículo Fecha y hora: compatibilidad con Automation.

Requisitos

Encabezado: ATLComTime.h

Operadores relacionales de COleDateTimeSpan

Operadores de comparación.

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

dateSpan
COleDateTimeSpan que se va comparar.

Valor devuelto

Estos operadores comparan dos valores de intervalo de fecha y hora y devuelven TRUE si la condición es true; en caso contrario, false.

Comentarios

Nota:

Se producirá un ATLASSERT si alguno de los operandos no es válido.

Ejemplo

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

Construye un objeto COleDateTimeSpan.

COleDateTimeSpan() throw();
COleDateTimeSpan(double dblSpanSrc) throw();
COleDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();

Parámetros

dblSpanSrc
Número de días que se van a copiar en el nuevo objeto COleDateTimeSpan.

lDays, nHours, nMins, nSecs
Indique los valores de día y hora que se van a copiar en el nuevo objeto COleDateTimeSpan.

Comentarios

Todos estos constructores crean objetos COleDateTimeSpan nuevos e inicializados en el valor especificado. A continuación se muestra una breve descripción de cada uno de estos constructores.

  • COleDateTimeSpan( ) Construye un objeto COleDateTimeSpan inicializado en 0.

  • COleDateTimeSpan(dblSpanSrc) Construye un objeto COleDateTimeSpan a partir de un valor de punto flotante.

  • COleDateTimeSpan(lDays,nHours,nMins,nSecs) Construye un objeto COleDateTimeSpan inicializado en los valores numéricos especificados.

El estado del nuevo objeto COleDateTimeSpan se establece en válido.

Para más información sobre los límites de valores COleDateTimeSpan, consulte el artículo Fecha y hora: compatibilidad con Automation.

Ejemplo

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

COleDateTimeSpan::Format

Genera una representación de cadena con formato de un objeto COleDateTimeSpan.

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

Parámetros

pFormat
Cadena de formato similar a la cadena de formato printf. Los códigos de formato, precedidos por un signo de porcentaje (%), se reemplazan por el componente COleDateTimeSpan correspondiente. Otros caracteres de la cadena de formato se copian sin cambios en la cadena devuelta. El valor y el significado de los códigos de formato para Format se enumeran a continuación:

  • %H Horas en el día actual

  • %M Minutos en la hora actual

  • %S Segundos en el minuto actual

  • %% Signo de porcentaje

Los cuatro códigos de formato enumerados anteriormente son los únicos códigos que aceptará el formato.

-

Nid
Id. de recurso de la cadena de control de formato.

Valor devuelto

Un objeto CString contiene el valor de intervalo de fecha y hora con formato.

Comentarios

Llame a estas funciones para crear una representación con formato del valor de intervalo de tiempo. Si el estado de este objeto COleDateTimeSpan es null, el valor devuelto es una cadena vacía. Si el estado no es válido, el recurso de cadena IDS_INVALID_DATETIMESPAN especifica la cadena de retorno.

A continuación se muestra una breve descripción de los formularios de esta función:

Format(pFormat)
Este formulario da formato al valor mediante la cadena de formato que contiene códigos de formato especiales precedidos por un signo de porcentaje (%), como en printf. La cadena de formato se pasa a la función como parámetro.

Format(nID)
Este formulario da formato al valor mediante la cadena de formato que contiene códigos de formato especiales precedidos por un signo de porcentaje (%), como en printf. La cadena de formato es un recurso. El id. de este recurso de cadena se pasa como parámetro.

Ejemplo

// 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);

COleDateTimeSpan::GetDays

Recupera la parte del día de este valor de intervalo de fecha y hora.

LONG GetDays() const throw();

Valor devuelto

Parte del día de este valor de intervalo de fecha y hora.

Comentarios

Los valores devueltos de esta función oscilan entre aproximadamente - 3 615 000 y 3 615 000.

Para ver otras funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

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

COleDateTimeSpan::GetHours

Recupera la parte de hora de este valor de intervalo de fecha y hora.

LONG GetHours() const throw();

Valor devuelto

La parte de horas de este valor de intervalo de fecha y hora.

Comentarios

Los valores devueltos de este intervalo de funciones entre - 23 y 23.

Para ver otras funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetHours() == 1);

COleDateTimeSpan::GetMinutes

Recupera la parte de minutos de este valor de intervalo de fecha y hora.

LONG GetMinutes() const throw();

Valor devuelto

La parte de minutos de este valor de intervalo de fecha y hora.

Comentarios

Los valores devueltos de este intervalo de funciones entre - 59 y 59.

Para ver otras funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetMinutes() == 5);   

COleDateTimeSpan::GetSeconds

Recupera la parte de los segundos de este valor de intervalo de fecha y hora.

LONG GetSeconds() const throw();

Valor devuelto

La parte de los segundos de este valor de intervalo de fecha y hora.

Comentarios

Los valores devueltos de este intervalo de funciones entre - 59 y 59.

Para ver otras funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetSeconds() == 12);   

COleDateTimeSpan::GetStatus

Obtiene el estado (validez) de este objeto COleDateTimeSpan.

DateTimeSpanStatus GetStatus() const throw();

Valor devuelto

Estado de este valor COleDateTimeSpan.

Comentarios

El valor devuelto se define mediante el tipo enumerado DateTimeSpanStatus, que se define dentro de la clase COleDateTimeSpan.

enum DateTimeSpanStatus{
   valid = 0,
   invalid = 1,
   null = 2,
};

Para una breve descripción de estos valores de estado, consulte la lista siguiente:

  • COleDateTimeSpan::valid indica que este objeto COleDateTimeSpan es válido.

  • COleDateTimeSpan::invalid Indica que este objeto COleDateTimeSpan es no válido; es decir, su valor puede que sea incorrecto.

  • COleDateTimeSpan::null Indica que este objeto COleDateTimeSpan es null, es decir, que no se ha proporcionado ningún valor para este objeto. (Esto es "null" en el sentido de la base de datos de "no tener ningún valor", al contrario que el NULL de C++).

El estado de un objeto COleDateTimeSpan es no válido en los casos siguientes:

  • Si este objeto ha experimentado un desbordamiento o subdesbordamiento durante una operación de asignación aritmética, es decir, += o -=.

  • Si se asignó un valor no válido a este objeto.

  • Si el estado de este objeto se estableció explícitamente en no válido mediante SetStatus.

Para más información sobre las operaciones que pueden establecer el estado en no válido, consulte COleDateTimeSpan::operator +, - y COleDateTimeSpan::operator +=, -=.

Para más información sobre los límites de valores COleDateTimeSpan, consulte el artículo Fecha y hora: compatibilidad con Automation.

COleDateTimeSpan::GetTotalDays

Recupera este valor de intervalo de fecha y hora expresado en días.

double GetTotalDays() const throw();

Valor devuelto

Este valor de intervalo de fecha y hora expresado en días. Aunque se crea un prototipo de esta función para devolver un valor double, siempre devolverá un valor entero.

Comentarios

Los valores devueltos de este intervalo de funciones entre aproximadamente - 3,65e6 y 3,65e6.

Para ver otras funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

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

COleDateTimeSpan::GetTotalHours

Recupera este valor de intervalo de fecha y hora expresado en horas.

double GetTotalHours() const throw();

Valor devuelto

Este valor de intervalo de fecha y hora expresado en horas. Aunque se crea un prototipo de esta función para devolver un valor double, siempre devolverá un valor entero.

Comentarios

Los valores devueltos de este intervalo de funciones entre aproximadamente - 8,77e7 y 8,77e7.

Para ver otras funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

Consulte el ejemplo de GetTotalDays.

COleDateTimeSpan::GetTotalMinutes

Recupera este valor de intervalo de fecha y hora expresado en minutos.

double GetTotalMinutes() const throw();

Valor devuelto

Este valor de intervalo de fecha y hora expresado en minutos. Aunque se crea un prototipo de esta función para devolver un valor double, siempre devolverá un valor entero.

Comentarios

Los valores devueltos de este intervalo de funciones entre aproximadamente - 5,26e9 y 5,26e9.

Para ver otras funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

Consulte el ejemplo de GetTotalDays.

COleDateTimeSpan::GetTotalSeconds

Recupera este valor de intervalo de fecha y hora expresado en segundos.

double GetTotalSeconds() const throw();

Valor devuelto

Este valor de intervalo de fecha y hora expresado en segundos. Aunque se crea un prototipo de esta función para devolver un valor double, siempre devolverá un valor entero.

Comentarios

Los valores devueltos de este intervalo de funciones entre aproximadamente - 3,16e11 a 3,16e11.

Para ver otras funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

Consulte el ejemplo de GetTotalDays.

COleDateTimeSpan::m_span

Valor subyacente double de este objeto COleDateTime.

double m_span;

Comentarios

Este valor expresa el intervalo de fecha y hora en días.

Precaución

Cambiar el valor del miembro de datos double cambiará el valor de este objeto COleDateTimeSpan. No cambia el estado de este objeto COleDateTimeSpan.

COleDateTimeSpan::m_status

El tipo de este miembro de datos es el tipo DateTimeSpanStatusenumerado, que se define dentro de la clase COleDateTimeSpan.

DateTimeSpanStatus m_status;

Comentarios

enum DateTimeSpanStatus{
   valid = 0,
   invalid = 1,
   null = 2,
   };

Para una breve descripción de estos valores de estado, consulte la lista siguiente:

  • COleDateTimeSpan::valid indica que este objeto COleDateTimeSpan es válido.

  • COleDateTimeSpan::invalid Indica que este objeto COleDateTimeSpan es no válido; es decir, su valor puede que sea incorrecto.

  • COleDateTimeSpan::null Indica que este objeto COleDateTimeSpan es null, es decir, que no se ha proporcionado ningún valor para este objeto. (Esto es "null" en el sentido de la base de datos de "no tener ningún valor", al contrario que el NULL de C++).

El estado de un objeto COleDateTimeSpan es no válido en los casos siguientes:

  • Si este objeto ha experimentado un desbordamiento o subdesbordamiento durante una operación de asignación aritmética, es decir, += o -=.

  • Si se asignó un valor no válido a este objeto.

  • Si el estado de este objeto se estableció explícitamente en no válido mediante SetStatus.

Para más información sobre las operaciones que pueden establecer el estado en no válido, consulte COleDateTimeSpan::operator +, - y COleDateTimeSpan::operator +=, -=.

Precaución

Este miembro de datos es para situaciones de programación avanzadas. Debe usar las funciones miembro insertadas GetStatus y SetStatus. Consulte SetStatus para obtener más precauciones sobre cómo establecer explícitamente este miembro de datos.

Para más información sobre los límites de valores COleDateTimeSpan, consulte el artículo Fecha y hora: compatibilidad con Automation.

COleDateTimeSpan::operator =

Copia un valor COleDateTimeSpan.

COleDateTimeSpan& operator=(double dblSpanSrc) throw();

Comentarios

Este operador de asignación sobrecargado copia el valor de intervalo de fecha y hora de origen en este objeto COleDateTimeSpan.

COleDateTimeSpan::operator +, -

Agregue, reste y cambie el signo de los valores COleDateTimeSpan.

COleDateTimeSpan operator+(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-() const throw();

Comentarios

Los dos primeros operadores permiten agregar y restar valores de intervalo de fecha y hora. La tercera le permite cambiar el signo de un valor de intervalo de fecha y hora.

Si alguno de los operandos es null, el estado del valor COleDateTimeSpan resultante es null.

Si alguno de los operandos es no válido y el otro es no null, el estado del valor COleDateTimeSpan resultante es no válido.

Para obtener más información sobre los valores de estado válidos, no válidos y null, consulte la variable de miembro m_status.

Ejemplo

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 +=, -=

Agregue y reste un valor COleDateTimeSpan de este valor COleDateTimeSpan.

COleDateTimeSpan& operator+=(const COleDateTimeSpan dateSpan) throw();
COleDateTimeSpan& operator-=(const COleDateTimeSpan dateSpan) throw();

Comentarios

Estos operadores permiten agregar y restar valores de intervalo de fecha y hora de este objeto COleDateTimeSpan. Si alguno de los operandos es null, el estado del valor COleDateTimeSpan resultante es null.

Si alguno de los operandos es no válido y el otro es no null, el estado del valor COleDateTimeSpan resultante es no válido.

Para obtener más información sobre los valores de estado válidos, no válidos y null, consulte la variable de miembro m_status.

Ejemplo

COleDateTimeSpan ts1(10.0); // 10 days
COleDateTimeSpan ts2(100.0); // 100 days
ts2 -= ts1;
ASSERT(ts2.GetTotalDays() == 90);   

COleDateTimeSpan::operator double

Convierte este valor COleDateTimeSpan en un objeto double.

operator double() const throw();

Comentarios

Este operador devuelve este valor COleDateTimeSpan como un número de días de punto flotante.

COleDateTimeSpan::SetDateTimeSpan

Establece el valor de intervalo de fecha y hora.

void SetDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();

Parámetros

lDays, nHours, nMins, nSecs
Indique los valores de intervalo de fechas y intervalo de tiempo que se van a copiar en este objeto COleDateTimeSpan.

Comentarios

Para ver las funciones que consultan el valor de un objeto COleDateTimeSpan, consulte las siguientes funciones miembro:

Ejemplo

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   

COleDateTimeSpan::SetStatus

Establece el estado (validez) de este objeto COleDateTimeSpan.

void SetStatus(DateTimeSpanStatus status) throw();

Parámetros

status
Nuevo valor de estado para este objeto COleDateTimeSpan.

Comentarios

El valor de parámetro Status se define mediante el tipo enumerado DateTimeSpanStatus, que se define dentro de la clase COleDateTimeSpan.

enum DateTimeSpanStatus{
   valid = 0,
   invalid = 1,
   null = 2,
   };

Para una breve descripción de estos valores de estado, consulte la lista siguiente:

  • COleDateTimeSpan::valid indica que este objeto COleDateTimeSpan es válido.

  • COleDateTimeSpan::invalid Indica que este objeto COleDateTimeSpan es no válido; es decir, su valor puede que sea incorrecto.

  • COleDateTimeSpan::null Indica que este objeto COleDateTimeSpan es null, es decir, que no se ha proporcionado ningún valor para este objeto. (Esto es "null" en el sentido de la base de datos de "no tener ningún valor", al contrario que el NULL de C++).

    Precaución

    Esta función es para situaciones de programación avanzadas. Esta función no modifica los datos de este objeto. Se usará con más frecuencia para establecer el estado en null o no válido. Tenga en cuenta que el operador de asignación (operator =) y SetDateTimeSpan establecen el estado del objeto en función de los valores de origen.

Ejemplo

// 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 también

COleDateTime (clase)
CTime (clase)
CTimeSpan (clase)
Gráfico de jerarquías
Clases compartidas de ATL y MFC