Obtener el número de días entre dos fechas en C#
Obtener el número de días entre dos fechas en C# es posible mediante la estructura TimeSpan, así también puedes obtener segundos, minutos, horas, etc.
En muchas ocasiones necesitamos obtener minutos, horas o días, y lo que hacemos es hacer métodos para obtener cada cosa.
Podría interesarte Mostrar fecha con horas en c#
Sin embargo, .NET nos ofrece la estructura TimeSpan que representa los intervalos de tiempo.
¿Cómo funciona?
Declaración de dos fechas:
DateTime fechaUno = Convert.ToDateTime("2017-12-24 13:30:15");
DateTime fechados = Convert.ToDateTime("2018-06-15 09:30:00");
Declaramos una variable de tipo TimeSpan:
TimeSpan difFechas = fechados - fechaUno;
Con la resta de fechas podemos obtener el intervalo de tiempo que necesitemos (minutos, horas, días, etc.).
Nota: Para obtener un valor positivo coloca primero la fecha mayor y restando la fecha menor (como el ejemplo).
Obtener intervalo de días:
int días = difFechas.Days;
Para obtener la diferencia de días utilizamos la propiedad de Days a la variable de tipo TimeSpan, el resultado devuelto es un numero entero.
Así también podemos obtener diferentes intervalos de tiempo, como los ejemplos siguientes:
Double segundos = difFechas.TotalSeconds;
//segundos = 14932785
Double minutos = difFechas.TotalMinutes;
//minutos = 248879.75
Double horas = difFechas.TotalHours;
//horas = 4147.99583333333
int dias = difFechas.Days;
//dias = 172
Utilizando esta herramienta de .Net nos ahorramos algunas horas de programación para obtener estos datos.
Esta herramienta no ofrece una propiedad que nos dé el número de meses o años, sin embargo, podemos obtenerlos partiendo de los días.