Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2006, 02:09
Avatar de javimartinez
javimartinez
 
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 22 años
Puntos: 1
Pregunta C++: De cadena de texto a fecha ¿algo más eficiente?

Hola

Estoy intentando ver el número de segundos transcurridos entre 2 fechas. Para ello parto de dos fechas en un CString (o char *, me da igual) y utilizo también la clase CTime. Lo que hago básicamente es:

1º - Separo mediante una función que va recorriendo la cadena la fecha en 6 variables de tipo entero: anio, mes, dias, hora, minuto, segundo. (realizo la operación por cada una de las 2 fechas)

Código:
ObtenerSeparadoFechaHora(fechaIniTexto, anioIni, mesIni, diaIni, horaIni, minutoIni, segundoIni);
ObtenerSeparadoFechaHora(fechaFinTexto, anioFin, mesFin, diaFin, horaFin, minutoFin, segundoFin);
2º - Creo un objeto de tipo CTime utilizando la siguiente sentencia:

Código:
CTime fechaIni(anioIni, mesIni, diaIni, horaIni, minutoIni, segundoIni);
CTime fechaFin(anioFin, mesFin, diaFin, horaFin, minutoFin, segundoFin);

3º - Por último, resto los 2 CTime y me da el resultado en segundos:

Código:
CTimeSpan segundosAux = fechaFin - fechaIni
int segundos = segundosAux.GetTotalSeconds()

Esto funciona, pero supongo que habrá alguna manera más eficiente de realizalo, básicamente, ¿se puede pasar de una cadena de caracteres a un CTime de forma más directa? (la función "ObtenerSeparadoFechaHora" ocupa más de 100 líneas) ¿Conoceis alguna otra forma más eficiente y/o elegante?

Gracias y un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse

Última edición por javimartinez; 25/08/2006 a las 02:32