TimeSpan

Con el TimeSpan tenemos una sencilla manera de medir el tiempo, por ejemplo para calcular la diferencia entre dos fechas.

La unidad de medida del TimeSpan son los Ticks, pero nosotros le podemos pedir que nos muestre los datos de la manera que queramos. Veamos un pequeños ejemplo en que queremos medir el tiempo que tarda en ejecutarse cierto proceso

TimeSpan.cs
        DateTime inicio = DateTime.Now;

        // EJECUCIÓN de un proceso

        DateTime final = DateTime.Now;
        TimeSpan duracion = final - inicio;
        double segundosTotales = duracion.TotalSeconds;
        int segundos = duracion.Seconds;



Como vemos, se recoge el momento de inicio, se ejecuta el proceso (por ejemplo mil accesos a una base de datos) y se recoge el final. Calculamos la diferencia, que nos da el resultado en TimeSpan, y almacenamos en una variable double el total de segundos transcurridos, y en una variable int los segundos... pero, ¿Cuál es la diferencia?

Por ejemplo, si el proceso ha tardado en ejecutarse un minuto y medio, TotalSeconds nos devuelve el total de los segundos, es decir 90, mientras que Seconds nos devuelve los segundos que veríamos, por ejemplo, en un reloj digital, es decir 30.

Esto es muy importante saberlo, y lo mismo sucede con Days - TotalDays, Minutes - TotalMinutes y el resto de unidades de medida... personalmente tuve algunos problemas con esto, pues yo quería averiguar los segundos totales y le pedía duracion.Seconds... y errores como éste son muy difíciles de localizar!!

Para finalizar sólo decir que el TimeSpan se puede sumar y restar entre sí muy fácilmente con los típicos operadores '+' y '-' o con sus funciones Add y Substract.