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 unCOleDateTimeSpan
objeto a partir de un valor de punto flotante.COleDateTimeSpan(
lDays
, ,nMins
nHours
,nSecs
) Construye unCOleDateTimeSpan
objeto 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 objetoCOleDateTimeSpan
es válido.COleDateTimeSpan::invalid
Indica que este objetoCOleDateTimeSpan
es no válido; es decir, su valor puede que sea incorrecto.COleDateTimeSpan::null
Indica que este objetoCOleDateTimeSpan
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 DateTimeSpanStatus
enumerado, 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 objetoCOleDateTimeSpan
es válido.COleDateTimeSpan::invalid
Indica que este objetoCOleDateTimeSpan
es no válido; es decir, su valor puede que sea incorrecto.COleDateTimeSpan::null
Indica que este objetoCOleDateTimeSpan
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 objetoCOleDateTimeSpan
es válido.COleDateTimeSpan::invalid
Indica que este objetoCOleDateTimeSpan
es no válido; es decir, su valor puede que sea incorrecto.COleDateTimeSpan::null
Indica que este objetoCOleDateTimeSpan
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);
Vea también
COleDateTime (clase)
CTime (clase)
CTimeSpan (clase)
Gráfico de jerarquías
Clases compartidas de ATL y MFC