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:
2º - Creo un objeto de tipo CTime utilizando la siguiente sentencia:ObtenerSeparadoFechaHora(fechaIniTexto, anioIni, mesIni, diaIni, horaIni, minutoIni, segundoIni); ObtenerSeparadoFechaHora(fechaFinTexto, anioFin, mesFin, diaFin, horaFin, minutoFin, segundoFin);
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