Foros del Web » Programación para mayores de 30 ;) » C/C++ »

C++: De cadena de texto a fecha ¿algo más eficiente?

Estas en el tema de C++: De cadena de texto a fecha ¿algo más eficiente? en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/08/2006, 02:09
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 9 meses
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:03.