Clase COleDateTime
Encapsula el tipo de datos DATE
que se usa en la automatización OLE.
Sintaxis
class COleDateTime
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
COleDateTime::COleDateTime | Construye un objeto COleDateTime . |
Métodos públicos
Nombre | Descripción |
---|---|
COleDateTime::Format | Genera una representación de cadena con formato de un objeto COleDateTime . |
COleDateTime::GetAsDBTIMESTAMP | Llame a este método para obtener la hora del objeto COleDateTime como una estructura de datos DBTIMESTAMP . |
COleDateTime::GetAsSystemTime | Llame a este método para obtener la hora del objeto COleDateTime como una estructura de datos SYSTEMTIME. |
COleDateTime::GetAsUDATE | Llame a este método para obtener la hora de COleDateTime como una estructura de datos UDATE . |
COleDateTime::GetCurrentTime | Crea un objeto COleDateTime que representa la hora actual (función miembro estática). |
COleDateTime::GetDay | Devuelve el día que representa este objeto COleDateTime (1 - 31). |
COleDateTime::GetDayOfWeek | Devuelve el día de la semana que representa este objeto COleDateTime (domingo = 1). |
COleDateTime::GetDayOfYear | Devuelve el día del año que representa este objeto COleDateTime (Ene 1 = 1). |
COleDateTime::GetHour | Devuelve la hora que representa este objeto COleDateTime (0 - 23). |
COleDateTime::GetMinute | Devuelve el minuto que representa este objeto COleDateTime (0 - 59). |
COleDateTime::GetMonth | Devuelve el mes que representa este objeto COleDateTime (1 - 12). |
COleDateTime::GetSecond | Devuelve el segundo que representa este objeto COleDateTime (0 - 59). |
COleDateTime::GetStatus | Obtiene el estado (validez) de este objeto COleDateTime . |
COleDateTime::GetYear | Devuelve el año que representa este objeto COleDateTime . |
COleDateTime::ParseDateTime | Lee un valor de fecha y hora de una cadena y establece el valor de COleDateTime . |
COleDateTime::SetDate | Establece el valor de este objeto COleDateTime en el valor de solo fecha especificado. |
COleDateTime::SetDateTime | Establece el valor de este objeto COleDateTime en el valor de fecha y hora especificado. |
COleDateTime::SetStatus | Establece el estado (validez) de este objeto COleDateTime . |
COleDateTime::SetTime | Establece el valor de este objeto COleDateTime en el valor de solo hora especificado. |
Operadores públicos
Nombre | Descripción |
---|---|
COleDateTime::operator ==, COleDateTime::operator <, etc. | Compare dos valores COleDateTime . |
COleDateTime::operator +, COleDateTime::operator - | Agregue y reste valores COleDateTime . |
COleDateTime::operator +=, COleDateTime::operator -= | Agregue y reste un valor COleDateTime de este objeto COleDateTime . |
COleDateTime::operator = | Copia un valor COleDateTime . |
COleDateTime::operator DATE, COleDateTime::operator Date* | Convierte un valor COleDateTime en DATE o en DATE* . |
Miembros de datos públicos
Nombre | Descripción |
---|---|
COleDateTime::m_dt | Contiene el objeto subyacente DATE para este objeto COleDateTime . |
COleDateTime::m_status | Contiene el estado de este objeto COleDateTime . |
Comentarios
COleDateTime
no tiene una clase base.
Es uno de los tipos posibles para el tipo de datos VARIANT de automatización OLE. Un valor COleDateTime
representa un valor absoluto de fecha y hora.
El tipo DATE
se implementa como un valor de punto flotante. Los días se miden desde el 30 de diciembre de 1899, a medianoche. En la tabla siguiente se muestran algunas fechas y sus valores asociados:
Date | Valor |
---|---|
29 de diciembre de 1899, medianoche | -1.0 |
29 de diciembre de 1899, 6 A.M | -1.25 |
30 de diciembre de 1899, medianoche | 0,0 |
31 de diciembre de 1899, medianoche | 1.0 |
1 de enero de 1900, 6 A.M. | 2.25 |
Precaución
En la tabla anterior, aunque los valores de día se convierten en negativos antes de la medianoche del 30 de diciembre de 1899, esto no ocurre con los valores de hora del día. Por ejemplo, 6:00 AM siempre se representa mediante un valor fraccional 0,25 independientemente de si el entero que representa el día es positivo (posterior al 30 de diciembre de 1899) o negativo (anterior al 30 de diciembre de 1899). Esto significa que una comparación de punto flotante simple ordenaría erróneamente una clase COleDateTime
que representa las 6:00 A.M. el 29/12/1899 como posterior a una que representa las 7:00 A.M. del mismo día.
La clase COleDateTime
controla las fechas del 1 de enero de 100 hasta el 31 de diciembre de 9999. La clase COleDateTime
usa el calendario gregoriano; no admite fechas julianas. COleDateTime
omite el horario de verano. (Consulte Fecha y hora: compatibilidad con Automation).
Nota:
Puede usar el formato %y
para recuperar un año de dos dígitos solo para las fechas a partir de 1900. Si usa el formato %y
en una fecha anterior a 1900, el código genera un error ASSERT.
Este tipo también se usa para representar valores de solo fecha o de solo hora. Por convención, la fecha 0 (30 de diciembre de 1899) se usa para los valores de solo hora y la hora 00:00 (medianoche) se usa para los valores de solo fecha.
Si crea un objeto COleDateTime
mediante una fecha inferior a 100, se acepta la fecha, pero las llamadas posteriores a GetYear
, GetMonth
, GetDay
, GetHour
, GetMinute
y GetSecond
generan un error y devuelven -1. Anteriormente, podía usar fechas de dos dígitos, pero las fechas deben ser de 100 o más en MFC 4.2 y versiones posteriores.
Para evitar problemas, especifique una fecha de cuatro dígitos. Por ejemplo:
COleDateTime mytime(1996, 1, 1, 0, 0, 0);
Las operaciones aritméticas básicas para los valores COleDateTime
usan la clase complementaria COleDateTimeSpan. los valores COleDateTimeSpan
definen un intervalo de tiempo. La relación entre estas clases es similar a la de 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 COleDateTime
Operadores de comparación.
bool operator==(const COleDateTime& date) const throw();
bool operator!=(const COleDateTime& date) const throw();
bool operator<(const COleDateTime& date) const throw();
bool operator>(const COleDateTime& date) const throw();
bool operator<=(const COleDateTime& date) const throw();
bool operator>=(const COleDateTime& date) const throw();
Parámetros
date
Objeto COleDateTime
que se va a comparar.
Comentarios
Nota:
Se producirá una macro ATLASSERT si alguno de los dos operandos es no válido.
Ejemplos
COleDateTime dateOne(1995, 3, 15, 12, 0, 0); // 15 March 1995 12 noon
COleDateTime dateTwo(dateOne); // 15 March 1995 12 noon
BOOL b;
b = dateOne == dateTwo; // TRUE
b = dateOne < dateTwo; // FALSE, same value
b = dateOne > dateTwo; // FALSE, same value
b = dateOne <= dateTwo; // TRUE, same value
b = dateOne >= dateTwo; // TRUE, same value
dateTwo.SetStatus(COleDateTime::invalid);
b = dateOne == dateTwo; // FALSE, different status
b = dateOne != dateTwo; // TRUE, different status
Los operadores >=, <=, > y < declararán si el objeto COleDateTime
está establecido en null.
VARIANT v = {};
v.vt = VT_NULL;
COleDateTime t1(v);
COleDateTime t2(v);
t1 = t1 + t2;
COleDateTime::COleDateTime
Construye un objeto COleDateTime
.
COleDateTime() throw();
COleDateTime(const VARIANT& varSrc) throw();
COleDateTime(DATE dtSrc) throw();
COleDateTime(time_t timeSrc) throw();
COleDateTime(__time64_t timeSrc) throw();
COleDateTime(const SYSTEMTIME& systimeSrc) throw();
COleDateTime(const FILETIME& filetimeSrc) throw();
COleDateTime(int nYear,
int nMonth,
int nDay,
int nHour,
int nMin,
int nSec) throw();
COleDateTime(WORD wDosDate,
WORD wDosTime) throw();
COleDateTime(const DBTIMESTAMP& timeStamp) throw();
Parámetros
dateSrc
Un objeto COleDateTime
existente que se va a copiar en el nuevo objeto COleDateTime
.
varSrc
Estructura de datos VARIANT
existente (posiblemente un objeto COleVariant
) que se va a convertir en un valor de fecha y hora (VT_DATE) y copiar en el objeto COleDateTime
nuevo.
dtSrc
Valor de fecha y hora (DATE
) que se va a copiar en el objeto COleDateTime
nuevo.
timeSrc
Valor time_t
o __time64_t
que se va a convertir en un valor de fecha y hora y copiar en el objeto COleDateTime
nuevo.
systimeSrc
Estructura SYSTEMTIME
que se va a convertir en un valor de fecha y hora y copiar en el objeto COleDateTime
nuevo.
filetimeSrc
Estructura FILETIME
que se va a convertir en un valor de fecha y hora y copiar en el objeto COleDateTime
nuevo. FILETIME
usa la hora coordinada universal (UTC), por lo que si pasa una hora local en la estructura, los resultados serán incorrectos. Para más información, consulte Tiempos de archivo en Windows SDK.
nYear, nMonth, nDay, nHour, nMin, nSec
Indican los valores de fecha y hora que se van a copiar en el objeto COleDateTime
nuevo.
wDosDate, wDosTime
Valores de fecha y hora de MS-DOS que se va a convertir en un valor de fecha y hora y copiar en el objeto COleDateTime
nuevo.
timeStamp
Referencia a una estructura DBTimeStamp que contiene la hora local actual.
Comentarios
Todos estos constructores crean objetos COleDateTime
nuevos inicializados en el valor especificado. En la tabla siguiente se muestran intervalos válidos para cada componente de fecha y hora:
Componente de fecha y hora | Intervalo válido |
---|---|
year | 100 - 9999 |
mes | 0 - 12 |
Día | 0 - 31 |
hora | 0 - 23 |
minute | 0 - 59 |
second | 0 - 59 |
Tenga en cuenta que el límite superior real del componente de día varía en función de los componentes de mes y año. Para más información, consulte las funciones miembro SetDate
o SetDateTime
.
Ahora se muestra una breve descripción de cada constructor:
COleDateTime(
) Construye unCOleDateTime
objeto inicializado a 0 (medianoche, 30 de diciembre de 1899).COleDateTime(
dateSrc
) Construye unCOleDateTime
objeto a partir de un objeto existenteCOleDateTime
.COleDateTime(
varSrc ) Construye unCOleDateTime
objeto . Intenta convertir una estructuraVARIANT
o un objeto COleVariant en un valor de fecha y hora (VT_DATE
). Si esta conversión se realiza correctamente, el valor convertido se copia en el objetoCOleDateTime
nuevo. Si no es así, el valor del objetoCOleDateTime
se establece en 0 (medianoche, 30 de diciembre de 1899) y su estado en no válido.COleDateTime(
dtSrc
) Construye unCOleDateTime
objeto a partir de unDATE
valor.COleDateTime(
timeSrc
) Construye unCOleDateTime
objeto a partir de untime_t
valor.COleDateTime(
systimeSrc ) Construye unCOleDateTime
objeto a partir de unSYSTEMTIME
valor.COleDateTime(
filetimeSrc
) Construye unCOleDateTime
objeto a partir de unFILETIME
valor. .FILETIME
usa la hora coordinada universal (UTC), por lo que si pasa una hora local en la estructura, los resultados serán incorrectos. Para más información, consulte Tiempos de archivo en Windows SDK.COleDateTime(
nYear
,nMonth
,nDay
,nHour
,nMin
,nSec
) Construye unCOleDateTime
objeto a partir de los valores numéricos especificados.COleDateTime(
wDosDate
,wDosTime
) Construye unCOleDateTime
objeto a partir de los valores de fecha y hora de MS-DOS especificados.
Para más información sobre el tipo de datos time_t
, vea la función time en la Referencia de la biblioteca en tiempo de ejecución.
Para más información, consulte las estructuras SYSTEMTIME y FILETIME en Windows SDK.
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
Nota:
El constructor que usa el parámetro DBTIMESTAMP
solo está disponible cuando se incluye OLEDB.h.
Ejemplo
time_t osBinaryTime; // C run-time time (defined in <time.h>)
time(&osBinaryTime); // Get the current time from the
// operating system.
COleDateTime time1; // initialized to 00:00am, 30 December 1899
// (and m_nStatus is valid!)
COleDateTime time2 = time1; // Copy constructor
COleDateTime time3(osBinaryTime); // from time_t
COleDateTime time4(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
SYSTEMTIME sysTime; // Win32 time information
GetSystemTime(&sysTime);
COleDateTime time5(sysTime);
COleDateTime::Format
Crea una representación con formato del valor de fecha y hora.
CString Format(DWORD dwFlags = 0, LCID lcid = LANG_USER_DEFAULT) const;
CString Format(LPCTSTR lpszFormat) const;
CString Format(UINT nFormatID) const;
Parámetros
dwFlags
Indica una de las siguientes marcas de configuración regional:
LOCALE_NOUSEROVERRIDE Use la configuración regional predeterminada del sistema, en vez de la configuración personalizada del usuario.
VAR_TIMEVALUEONLY Omita la parte de fecha durante el análisis.
VAR_DATEVALUEONLY Omita la parte de tiempo durante el análisis.
lcid
Indica el id. de configuración regional que se va a usar para la conversión. Para más información sobre los identificadores de idioma, consulte Identificadores de idioma.
lpszFormat
Cadena de formato similar a la cadena de formato printf
. Cada código de formato, precedido por un signo de porcentaje ( %
), se reemplaza por el componente COleDateTime
correspondiente. Otros caracteres de la cadena de formato se copian sin cambios en la cadena devuelta. Para más información, consulte strftime de la función en tiempo de ejecución. El valor y el significado de los códigos de formato de Format
son los siguientes:
%H
Horas en el día actual%M
Minutos en la hora actual%S
Segundos en el minuto actual%%
Signo de porcentaje
nFormatID
Id. de recurso de la cadena de control de formato.
Valor devuelto
Una cadena CString
que contiene el valor de fecha y hora con formato.
Comentarios
Si el estado de este objeto COleDateTime
es null, el valor devuelto es una cadena vacía. Si el estado es no válido, la cadena de devolución ATL_IDS_DATETIME_INVALID especifica el recurso de cadena.
Ahora se muestra una breve descripción de los tres formularios de esta función:
Format
( dwFlags, lcid)
Este formulario da formato al valor mediante las especificaciones de idioma (Id. de configuración regional) para la fecha y hora. Con los parámetros predeterminados, este formulario imprimirá la fecha y la hora, a menos que la parte de hora sea 0 (medianoche), en cuyo caso imprimirá solo la fecha, o la parte de fecha es 0 (30 de diciembre de 1899), en cuyo caso imprimirá solo la hora. Si el valor de fecha y hora es 0 (30 de diciembre de 1899, medianoche), este formulario con los parámetros predeterminados imprimirá medianoche.
Format
( lpszFormat)
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. Para más información sobre los códigos de formato, consulte strftime, wcsftime en la Referencia de biblioteca de tiempo de ejecución.
Format
( nFormatID)
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. Para más información sobre los códigos de formato, consulte strftime, wcsftime en la Referencia de biblioteca de tiempo de ejecución.
Ejemplo
COleDateTime t(1999, 3, 19, 22, 15, 0);
CString str = t.Format(_T("%A, %B %d, %Y"));
ASSERT(str == _T("Friday, March 19, 1999"));
COleDateTime::GetAsDBTIMESTAMP
Llame a este método para obtener la hora del objeto COleDateTime
como una estructura de datos DBTIMESTAMP
.
bool GetAsDBTIMESTAMP(DBTIMESTAMP& timeStamp) const throw();
Parámetros
timeStamp
Referencia a una estructura DBTimeStamp.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Almacena la hora resultante en la estructura timeStamp a la que se hace referencia. La estructura de datos DBTIMESTAMP
inicializada por esta función tendrá su miembro fraction
establecido en cero.
Ejemplo
COleDateTime t = COleDateTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP(ts); // retrieves the time in t into the ts structure
COleDateTime::GetAsSystemTime
Llame a este método para obtener la hora del objeto COleDateTime
como una estructura de datos SYSTEMTIME
.
bool GetAsSystemTime(SYSTEMTIME& sysTime) const throw();
Parámetros
sysTime
Referencia a una estructura SYSTEMTIME para recibir el valor de fecha y hora convertido del objeto COleDateTime
.
Valor devuelto
Devuelve TRUE si se ejecuta correctamente; FALSE si se produce un error en la conversión o si el objeto COleDateTime
es null o no válido.
Comentarios
GetAsSystemTime
almacena la hora resultante en el objeto sysTime al que se hace referencia. La estructura de datos SYSTEMTIME
inicializada por esta función tendrá su miembro wMilliseconds
establecido en cero.
Para más información sobre la información de estado contenida en un objeto COleDateTime
, consulte GetStatus.
COleDateTime::GetAsUDATE
Llame a este método para obtener la hora del objeto COleDateTime
como una estructura de datos UDATE
.
bool GetAsUDATE(UDATE& uDate) const throw();
Parámetros
uDate
Referencia a una estructura UDATE
para recibir el valor de fecha y hora convertido del objeto COleDateTime
.
Valor devuelto
Devuelve TRUE si se ejecuta correctamente; FALSE si se produce un error en la conversión o si el objeto COleDateTime
es null o no válido.
Comentarios
Una estructura UDATE
representa una fecha "desempaquetada".
COleDateTime::GetCurrentTime
Llame a esta función miembro estática para devolver el valor de fecha y hora actual.
static COleDateTime WINAPI GetCurrentTime() throw();
Ejemplo
// example for COleDateTime::GetCurrentTime
COleDateTime dateTest;
// dateTest value = midnight 30 December 1899
dateTest = COleDateTime::GetCurrentTime();
// dateTest value = current date and time
// a second example for COleDateTime::GetCurrentTime
// Since GetCurrentTime() is a static member, you can use it in
// a constructor:
COleDateTime t1 = COleDateTime::GetCurrentTime();
COleDateTime t2(COleDateTime::GetCurrentTime());
// Or in a normal assignment operator
COleDateTime t3;
t3 = COleDateTime::GetCurrentTime();
// or even in an expression
if (COleDateTime::GetCurrentTime().GetDayOfWeek() == 6)
_tprintf(_T("Thank Goodness it is Friday!\n\n"));
COleDateTime::GetDay
Obtiene el día del mes representado por este valor de fecha y hora.
int GetDay() const throw();
Valor devuelto
Día del mes representado por el valor de este objeto COleDateTime
o COleDateTime::error
si no se pudo obtener el día.
Comentarios
Los valores devueltos válidos oscilan entre 1 y 31.
Para obtener información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las siguientes funciones miembro:
Ejemplo
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDay() == 19);
ASSERT(t.GetMonth() == 3);
ASSERT(t.GetYear() == 1999);
COleDateTime::GetDayOfWeek
Obtiene el día de la semana representado por este valor de fecha y hora.
int GetDayOfWeek() const throw();
Valor devuelto
Día de la semana representado por el valor de este objeto COleDateTime
o COleDateTime::error
si no se pudo obtener la semana.
Comentarios
Los valores devueltos válidos oscilan entre 1 y 7, donde 1=domingo, 2=lunes, etc.
Para obtener información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las siguientes funciones miembro:
Ejemplo
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfWeek() == 6); // it's a Friday
COleDateTime::GetDayOfYear
Obtiene el día del año representado por este valor de fecha y hora.
int GetDayOfYear() const throw();
Valor devuelto
Día del año representado por el valor de este objeto COleDateTime
o COleDateTime::error
si no se pudo obtener el año.
Comentarios
Los valores devueltos válidos oscilan entre 1 y 366, donde el 1 de enero = 1.
Para obtener información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las siguientes funciones miembro:
Ejemplo
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfYear() == 78); // 78th day of that year
COleDateTime::GetHour
Obtiene la hora representada por este valor de fecha y hora.
int GetHour() const throw();
Valor devuelto
Hora representada por el valor de este objeto COleDateTime
o COleDateTime::error
si no se pudo obtener la hora.
Comentarios
Los valores devueltos válidos oscilan entre 0 y 23.
Para obtener información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las siguientes funciones miembro:
Ejemplo
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetSecond() == 0);
ASSERT(t.GetMinute() == 15);
ASSERT(t.GetHour() == 22);
COleDateTime::GetMinute
Obtiene el minuto representado por este valor de fecha y hora.
int GetMinute() const throw();
Valor devuelto
Minuto representado por el valor de este objeto COleDateTime
o COleDateTime::error
si no se pudo obtener el minuto.
Comentarios
Los valores devueltos válidos oscilan entre 0 y 59.
Para obtener información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las siguientes funciones miembro:
Ejemplo
Consulte el ejemplo de GetHour.
COleDateTime::GetMonth
Obtiene el mes representado por este valor de fecha y hora.
int GetMonth() const throw();
Valor devuelto
Mes representado por el valor de este objeto COleDateTime
o COleDateTime::error
si no se pudo obtener el mes.
Comentarios
Los valores devueltos válidos oscilan entre 1 y 12.
Para obtener información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las siguientes funciones miembro:
Ejemplo
Consulte el ejemplo de GetDay.
COleDateTime::GetSecond
Obtiene el segundo representado por este valor de fecha y hora.
int GetSecond() const throw();
Valor devuelto
Segundo representado por el valor de este objeto COleDateTime
o COleDateTime::error
si no se pudo obtener el segundo.
Comentarios
Los valores devueltos válidos oscilan entre 0 y 59.
Nota:
La clase COleDateTime
no admite segundos intercalares.
Para más información sobre la implementación de COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
Para obtener información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las siguientes funciones miembro:
Ejemplo
Consulte el ejemplo de GetHour.
COleDateTime::GetStatus
Obtiene el estado (validez) de un objeto COleDateTime
determinado.
DateTimeStatus GetStatus() const throw();
Valor devuelto
Devuelve el estado de este valor COleDateTime
. Si llama a GetStatus
en un objeto COleDateTime
construido con el valor predeterminado, devolverá válido. Si llama a GetStatus
en un objeto COleDateTime
inicializado con el constructor establecido en null, GetStatus
devolverá null.
Comentarios
El valor devuelto se define mediante el tipo enumerado DateTimeStatus
, que se define dentro de la clase COleDateTime
.
enum DateTimeStatus
{
error = -1,
valid = 0,
invalid = 1, // Invalid date (out of range, etc.)
null = 2, // Literally has no value
};
Para una breve descripción de estos valores de estado, consulte la lista siguiente:
COleDateTime::error
Indica que se produjo un error al intentar obtener parte del valor de fecha y hora.COleDateTime::valid
indica que este objetoCOleDateTime
es válido.COleDateTime::invalid
Indica que este objetoCOleDateTime
es no válido; es decir, su valor puede que sea incorrecto.COleDateTime::null
Indica que este objetoCOleDateTime
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 COleDateTime
es no válido en los casos siguientes:
Si su valor se establece a partir de un valor
VARIANT
oCOleVariant
que no se pudo convertir en un valor de fecha y hora.Si su valor se establece a partir de un valor
time_t
,SYSTEMTIME
oFILETIME
que no se pudo convertir en un valor de fecha y hora válido.Si
SetDateTime
establece su valor con valores de parámetro no válidos.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 las funciones miembro siguientes:
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
Ejemplo
COleDateTime t;
// this one is a leap year
t.SetDateTime(2000, 2, 29, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::valid);
// this date isn't valid
t.SetDateTime(1925, 2, 30, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::invalid);
// the only way to set null is to set null!
t.SetStatus(COleDateTime::null);
ASSERT(t.GetStatus() == COleDateTime::null);
COleDateTime::GetYear
Obtiene el año representado por este valor de fecha y hora.
int GetYear() const throw();
Valor devuelto
Año representado por el valor de este objeto COleDateTime
o COleDateTime::error
si no se pudo obtener el año.
Comentarios
Los valores devueltos válidos oscilan entre 100 y 9999, que incluye el siglo.
Para obtener información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las siguientes funciones miembro:
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
Ejemplo
Consulte el ejemplo de GetDay.
COleDateTime::m_dt
Estructura subyacente DATE
de este objetoCOleDateTime
.
DATE m_dt;
Comentarios
Precaución
Cambiar el valor del objeto DATE
al que accede el puntero devuelto por esta función cambiará el valor de este objeto COleDateTime
. No cambia el estado de este objeto COleDateTime
.
Para más información sobre la implementación del objeto DATE
, consulte el artículo Fecha y hora: compatibilidad con Automation.
COleDateTime::m_status
Contiene el estado de este objeto COleDateTime
.
DateTimeStatus m_status;
Comentarios
El tipo de este miembro de datos es el tipo enumerado DateTimeStatus
, que se define dentro de la clase COleDateTime
. Para más información, vea COleDateTime::GetStatus.
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.
COleDateTime::operator =
Copia un valor COleDateTime
.
COleDateTime& operator=(const VARIANT& varSrc) throw();
COleDateTime& operator=(DATE dtSrc) throw();
COleDateTime& operator=(const time_t& timeSrc) throw();
COleDateTime& operator=(const __time64_t& timeSrc) throw();
COleDateTime& operator=(const SYSTEMTIME& systimeSrc) throw();
COleDateTime& operator=(const FILETIME& filetimeSrc) throw();
COleDateTime& operator=(const UDATE& uDate) throw();
Comentarios
Estos operadores de asignación sobrecargados copian el valor de fecha y hora de origen en este objeto COleDateTime
. Ahora se muestra una breve descripción de cada uno de estos operadores de asignación sobrecargados:
operator =(
dateSrc
) El valor y el estado del operando se copian en esteCOleDateTime
objeto.operator =( varSrc ) Si la conversión del valor VARIANT (o el objeto COleVariant ) a una fecha y hora (VT_DATE) se realiza correctamente, el valor convertido se copia en este
COleDateTime
objeto y su estado se establece en válido. Si la conversión no se realiza de forma correcta, el valor de este objeto se establece en cero (30 de diciembre de 1899, medianoche) y su estado en no válido.operator =(
dtSrc
) ElDATE
valor se copia en esteCOleDateTime
objeto y su estado se establece en válido.operator =(
timeSrc
) Eltime_t
valor o__time64_t
se convierte y copia en esteCOleDateTime
objeto. Si la conversión se realiza correctamente, el estado de este objeto se establece en válido; de lo contrario, se establece en no válido.operator =( systimeSrc ) El valor SYSTEMTIME se convierte y copia en este
COleDateTime
objeto. Si la conversión se realiza correctamente, el estado de este objeto se establece en válido; de lo contrario, se establece en no válido.operator =(
uDate
) ElUDATE
valor se convierte y copia en esteCOleDateTime
objeto. Si la conversión se realiza correctamente, el estado de este objeto se establece en válido; de lo contrario, se establece en no válido. Una estructuraUDATE
representa una fecha "desempaquetada". Para más información, consulte la función VarDateFromUdate.operator =(
filetimeSrc
) El valor FILETIME se convierte y copia en esteCOleDateTime
objeto. Si la conversión se realiza correctamente, el estado de este objeto se establece en válido; de lo contrario, se establece en no válido.FILETIME
usa la hora coordinada universal (UTC), por lo que si pasa una hora UTC en la estructura, los resultados se convertirán de la hora UTC a la hora local y se almacenarán como hora variante. Este comportamiento es el mismo que en Visual C++ 6.0 y Visual C++.NET 2003 SP2. Para más información, consulte Tiempos de archivo en Windows SDK.
Para más información, consulte la entrada VARIANT en Windows SDK.
Para más información sobre el tipo de datos time_t
, vea la función time en la Referencia de la biblioteca en tiempo de ejecución.
Para más información, consulte las estructuras SYSTEMTIME y FILETIME en Windows SDK.
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
COleDateTime::operator +, -
Agregue y reste valores ColeDateTime
.
COleDateTime operator+(COleDateTimeSpan dateSpan) const throw();
COleDateTime operator-(COleDateTimeSpan dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTime& date) const throw();
Comentarios
Los objetos COleDateTime
representan tiempos absolutos. Los objetos COleDateTimeSpan representan horas relativas. Los dos primeros operadores permiten agregar y restar un valor COleDateTimeSpan
de un valor COleDateTime
. El tercer operador permite restar un valor COleDateTime
de otro para producir un valor COleDateTimeSpan
.
Si alguno de los operandos es null, el estado del valor COleDateTime
resultante es null.
Si el valor resultante COleDateTime
está fuera de los límites de valores aceptables, el estado de ese valor COleDateTime
es no válido.
Si alguno de los operandos es no válido y el otro es no null, el estado del valor COleDateTime
resultante es no válido.
Los operadores + y - declararán si el objeto COleDateTime
está establecido en null. Consulte Operadores relacionales COleDateTime para ver un ejemplo.
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.
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
Ejemplo
COleDateTime t1(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
COleDateTime t2(1999, 3, 20, 22, 15, 0); // 10:15PM March 20, 1999
// Subtract 2 COleDateTimes
COleDateTimeSpan ts = t2 - t1;
// one day is 24 * 60 * 60 == 86400 seconds
ASSERT(ts.GetTotalSeconds() == 86400L);
// Add a COleDateTimeSpan to a COleDateTime.
ASSERT((t1 + ts) == t2);
// Subtract a COleDateTimeSpan from a COleDateTime.
ASSERT((t2 - ts) == t1);
COleDateTime::operator +=, -=
Agregue y reste un valor ColeDateTime
de este objeto COleDateTime
.
COleDateTime& operator+=(COleDateTimeSpan dateSpan) throw();
COleDateTime& operator-=(COleDateTimeSpan dateSpan) throw();
Comentarios
Estos operadores permiten agregar y restar un valor COleDateTimeSpan
a y desde este objeto COleDateTime
. Si alguno de los operandos es null, el estado del valor COleDateTime
resultante es null.
Si el valor COleDateTime
resultante está fuera de los límites de valores aceptables, el estado de ese valor COleDateTime
se establece en no válido.
Si alguno de los operandos es no válido y otro es no null, el estado del valor COleDateTime
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.
Los operadores += y -= declararán si el objeto COleDateTime
está establecido en null. Consulte Operadores relacionales COleDateTime para ver un ejemplo.
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
COleDateTime::operator DATE
Convierte un valor ColeDateTime
en DATE
.
operator DATE() const throw();
Comentarios
Este operador devuelve un objeto DATE
cuyo valor se copia de este objeto COleDateTime
. Para más información sobre la implementación del objeto DATE
, consulte el artículo Fecha y hora: compatibilidad con Automation.
El operador DATE
declarará si el objeto COleDateTime
está establecido en null. Consulte Operadores relacionales COleDateTime para ver un ejemplo.
COleDateTime::ParseDateTime
Analiza una cadena para leer un valor de fecha y hora.
bool ParseDateTime(
LPCTSTR lpszDate,
DWORD dwFlags = 0,
LCID lcid = LANG_USER_DEFAULT) throw();
Parámetros
lpszDate
Puntero a la cadena terminada en null que se va a analizar. Para conocer más detalles, vea la sección Comentarios.
dwFlags
Indica marcas para la configuración regional y el análisis. Una o varias de las marcas siguientes:
LOCALE_NOUSEROVERRIDE Use la configuración regional predeterminada del sistema, en vez de la configuración personalizada por el usuario.
VAR_TIMEVALUEONLY Omita la parte de fecha durante el análisis.
VAR_DATEVALUEONLY Omita la parte de tiempo durante el análisis.
lcid
Indica el id. de configuración regional que se va a usar para la conversión.
Valor devuelto
Devuelve TRUE si la cadena se convirtió correctamente en un valor de fecha y hora; de lo contrario, FALSE.
Comentarios
Si la cadena se convirtió correctamente en un valor de fecha y hora, el valor de este objeto COleDateTime
se establece en ese valor y su estado en válido.
Nota:
Los valores de año deben estar comprendidos entre 100 y 9999, ambos inclusive.
El parámetro lpszDate puede tomar una variedad de formatos. Por ejemplo, las siguientes cadenas contienen formatos de fecha y hora aceptables:
"25 January 1996"
"8:30:00"
"20:30:00"
"January 25, 1996 8:30:00"
"8:30:00 Jan. 25, 1996"
"1/25/1996 8:30:00" // always specify the full year, even in a 'short date' format
El Id. de configuración regional también afectará si el formato de cadena es aceptable para la conversión a un valor de fecha y hora.
En el caso de VAR_DATEVALUEONLY, el valor de hora se establece en la hora 0 o medianoche. En el caso de VAR_TIMEVALUEONLY, el valor de fecha se establece en la fecha 0, es decir, el 30 de diciembre de 1899.
Si la cadena no se pudo convertir en un valor de fecha y hora o si se produjo un desbordamiento numérico, el estado de este objeto COleDateTime
es no válido.
Para más información sobre los límites y la implementación de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
COleDateTime::SetDate
Establece la fecha de este objeto COleDateTime
.
int SetDate(
int nYear,
int nMonth,
int nDay) throw();
Parámetros
nYear
Indica el año que se va a copiar en este objeto COleDateTime
.
nMonth
Indica el mes que se va a copiar en este objeto COleDateTime
.
nDay
Indica el día que se va a copiar en este objeto COleDateTime
.
Valor devuelto
Cero si el valor de este objeto COleDateTime
se estableció correctamente; de lo contrario, 1. Este valor devuelto se basa en el tipo enumerado DateTimeStatus
. Para más información, vea la función miembro SetStatus.
Comentarios
La fecha se establece en los valores especificados. La hora se establece en la hora 0, medianoche.
Consulte la tabla siguiente para ver los límites de los valores de parámetro:
Parámetro | Bounds |
---|---|
nYear | 100 - 9999 |
nMonth | 1 - 12 |
nDay | 0 - 31 |
Si el día del mes se desborda, se convierte en el día correcto del mes siguiente y el mes o año se incrementa en consecuencia. Un valor de día de cero indica el último día del mes anterior. El comportamiento es el mismo que en SystemTimeToVariantTime
.
Si el valor de fecha especificado por los parámetros es no válido, el estado de este objeto se establece en COleDateTime::invalid
. Debe usar GetStatus para comprobar la validez del valor DATE
y no debe suponer que el valor de m_dt permanecerá sin modificar.
Aquí tiene algunos ejemplos de valores de fecha:
nYear | nMonth | nDay | Valor |
---|---|---|---|
2000 | 2 | 29 | 29 de febrero de 2000 |
1776 | 7 | 4 | 4 de julio de 1776 |
1925 | 4 | 35 | 35 de abril de 1925 (fecha no válida) |
10000 | 1 | 1 | 1 de enero de 10000 (fecha no válida) |
Para establecer tanto la fecha como la hora, consulte COleDateTime::SetDateTime.
Para información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las funciones miembro siguientes:
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
Ejemplo
// set only the date, time set to midnight
dt.SetDate(1999, 3, 19);
ASSERT(dt.GetYear() == 1999);
ASSERT(dt.GetDay() == 19);
ASSERT(dt.GetMonth() == 3);
ASSERT(dt.GetHour() == 0);
ASSERT(dt.GetMinute() == 0);
ASSERT(dt.GetSecond() == 0);
// setting the time only resets the date to 1899!
dt.SetTime(22, 15, 0);
ASSERT(dt.GetYear() == 1899);
ASSERT(dt.GetDay() == 30);
ASSERT(dt.GetMonth() == 12);
ASSERT(dt.GetHour() == 22);
ASSERT(dt.GetMinute() == 15);
ASSERT(dt.GetSecond() == 0);
COleDateTime::SetDateTime
Establece la fecha y hora de este objeto COleDateTime
.
int SetDateTime(
int nYear,
int nMonth,
int nDay,
int nHour,
int nMin,
int nSec) throw();
Parámetros
nYear, nMonth, nDay, nHour, nMin, nSec
Indique los componentes de fecha y hora que se van a copiar en este objeto COleDateTime
.
Valor devuelto
Cero si el valor de este objeto COleDateTime
se estableció correctamente; de lo contrario, 1. Este valor devuelto se basa en el tipo enumerado DateTimeStatus
. Para más información, vea la función miembro SetStatus.
Comentarios
Consulte la tabla siguiente para ver los límites de los valores de parámetro:
Parámetro | Bounds |
---|---|
nYear | 100 - 9999 |
nMonth | 1 - 12 |
nDay | 0 - 31 |
nHour | 0 - 23 |
nMin | 0 - 59 |
nSec | 0 - 59 |
Si el día del mes se desborda, se convierte en el día correcto del mes siguiente y el mes o año se incrementa en consecuencia. Un valor de día de cero indica el último día del mes anterior. El comportamiento es el mismo que SystemTimeToVariantTime.
Si el valor de fecha u hora especificado por los parámetros es no válido, el estado de este objeto se establece en no válido y su valor no se cambia.
Aquí tiene algunos ejemplos de valores de tiempo:
nHour | nMin | nSec | Valor |
---|---|---|---|
1 | 3 | 3 | 01:03:03 |
23 | 45 | 0 | 23:45:00 |
25 | 30 | 0 | No válida |
9 | 60 | 0 | No válida |
Aquí tiene algunos ejemplos de valores de fecha:
nYear | nMonth | nDay | Valor |
---|---|---|---|
1995 | 4 | 15 | 15 de abril de 1995 |
1789 | 7 | 14 | 17 de julio de 1789 |
1925 | 2 | 30 | No válida |
10000 | 1 | 1 | No válida |
Para establecer solo la fecha, consulte COleDateTime::SetDate. Para establecer solo la hora, consulte COleDateTime::SetTime.
Para información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las funciones miembro siguientes:
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
Ejemplo
Consulte el ejemplo de GetStatus.
COleDateTime::SetStatus
Establece el estado de este objeto COleDateTime
.
void SetStatus(DateTimeStatus status) throw();
Parámetros
status
Nuevo valor de estado para este objeto COleDateTime
.
Comentarios
El valor de parámetro de estado se define mediante el tipo enumerado DateTimeStatus
, que se define dentro de la clase COleDateTime
. Consulte COleDateTime::GetStatus para más información.
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. El operador de asignación (operator =) y SetDateTime establecen el estado del objeto en función del valor o valores de origen.
Ejemplo
Consulte el ejemplo de GetStatus.
COleDateTime::SetTime
Establece la hora de este objeto COleDateTime
.
int SetTime(
int nHour,
int nMin,
int nSec) throw();
Parámetros
nHour, nMin, nSec
Indican los componentes de tiempo que se van a copiar en este objeto COleDateTime
.
Valor devuelto
Cero si el valor de este objeto COleDateTime
se estableció correctamente; de lo contrario, 1. Este valor devuelto se basa en el tipo enumerado DateTimeStatus
. Para más información, vea la función miembro SetStatus.
Comentarios
La hora se establece en los valores especificados. La fecha se establece en la fecha 0, es decir, el 30 de diciembre de 1899.
Consulte la tabla siguiente para ver los límites de los valores de parámetro:
Parámetro | Bounds |
---|---|
nHour | 0 - 23 |
nMin | 0 - 59 |
nSec | 0 - 59 |
Si el valor de tiempo especificado por los parámetros es no válido, el estado de este objeto se establece en no válido y su valor no se cambia.
Aquí tiene algunos ejemplos de valores de tiempo:
nHour | nMin | nSec | Valor |
---|---|---|---|
1 | 3 | 3 | 01:03:03 |
23 | 45 | 0 | 23:45:00 |
25 | 30 | 0 | No válida |
9 | 60 | 0 | No válida |
Para establecer tanto la fecha como la hora, consulte COleDateTime::SetDateTime.
Para información sobre otras funciones miembro que consultan el valor de este objeto COleDateTime
, vea las funciones miembro siguientes:
Para más información sobre los límites de valores COleDateTime
, consulte el artículo Fecha y hora: compatibilidad con Automation.
Ejemplo
Consulte el ejemplo de SetDate.
Consulte también
COleVariant (clase)
CTime (clase)
CTimeSpan (clase)
Gráfico de jerarquías
Clases compartidas de ATL y MFC