restar net meses horas fechas fecha entre diferencia dias cantidad calcular actual c# date

net - diferencia en meses entre dos fechas c#



¿Calcular diferencia entre dos fechas(número de días)? (15)

Creo que esto hará lo que quieras:

DateTime d1 = DateTime.Now; DateTime d2 = DateTime.Now.AddDays(-1); TimeSpan t = d1 - d2; double NrOfDays = t.TotalDays;

Veo que esta pregunta ha sido respondida para Java , JavaScript y PHP , pero no para C #. Entonces, ¿cómo se podría calcular el número de días entre dos fechas en C #?


En caso de que alguien quiera un número de días completos como doble ( a , b de tipo DateTime ):

(a.Date - b.Date).TotalDays


La respuesta principal es correcta, sin embargo, si solo desea TODOS los días como int y está dispuesto a renunciar al componente de tiempo de la fecha, considere:

(EndDate.Date - StartDate.Date).Days

De nuevo, asumiendo que StartDate y EndDate son de tipo DateTime.


Obtenga la diferencia entre las dos fechas y luego obtenga los días de:

int total_days = (EndDate - StartDate).TotalDays


Para b como dos tipos de fecha y DateTime :

DateTime d = DateTime.Now; DateTime c = DateTime.Now; c = d.AddDays(145); string cc; Console.WriteLine(d); Console.WriteLine(c); var t = (c - d).Days; Console.WriteLine(t); cc = Console.ReadLine();


Para los principiantes como yo, tropezaremos con este pequeño problema, en una línea simple, con conversión de muestra a int :

int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);

Esto calcula el total de días desde hoy (DateTime.UtcNow.Date) hasta la fecha deseada (myDateTime.Date).

Si myDateTime es ayer, o una fecha más antigua que hoy, esto dará un resultado entero positivo (+).

Por otro lado, si myDateTime es mañana o en la fecha futura, esto dará un resultado entero negativo (-) debido a las reglas de adición.

¡Feliz codificación! ^ _ ^


Primero declara una clase que regresará más tarde:

public void date() { Datetime startdate; Datetime enddate; Timespan remaindate; startdate = DateTime.Parse(txtstartdate.Text).Date; enddate = DateTime.Parse(txtenddate.Text).Date; remaindate = enddate - startdate; if (remaindate != null) { lblmsg.Text = "you have left with " + remaindate.TotalDays + "days."; } else { lblmsg.Text = "correct your code again."; } } protected void btncal_Click(object sender, EventArgs e) { date(); }

Utilice un control de botón para llamar a la clase anterior. Aquí hay un ejemplo:


Puede utilizar el siguiente código:

int DateDifInSecond = EndDate.Subtract(StartDate).TotalSeconds


Puedes probar esto

EndDate.Date.Subtract(DateTime.Now.Date).Days


Suponiendo que StartDate y EndDate son de tipo DateTime :

(EndDate - StartDate).TotalDays


Usar un intervalo de tiempo resolvería los problemas ya que tiene muchos atributos:

DateTime strt_date = DateTime.Now; DateTime end_date = Convert.ToDateTime("10/1/2017 23:59:59"); //DateTime add_days = end_date.AddDays(1); TimeSpan nod = (end_date - strt_date); Console.WriteLine(strt_date + "" + end_date + "" + "" + nod.TotalHours + ""); Console.ReadKey();


Use el objeto TimeSpan que es el resultado de la sustracción de fecha:

DateTime d1; DateTime d2; return (d1 - d2).TotalDays;


// Difference in days, hours, and minutes. TimeSpan ts = EndDate - StartDate; // Difference in days. int differenceInDays = ts.Days; // This is in int double differenceInDays= ts.TotalDays; // This is in double // Difference in Hours. int differenceInHours = ts.Hours; // This is in int double differenceInHours= ts.TotalHours; // This is in double // Difference in Minutes. int differenceInMinutes = ts.Minutes; // This is in int double differenceInMinutes= ts.TotalMinutes; // This is in double

También puede obtener la diferencia en segundos, milisegundos y tics.


DateTime xmas = new DateTime(2009, 12, 25); double daysUntilChristmas = xmas.Subtract(DateTime.Today).TotalDays;


protected void Calendar1_SelectionChanged(object sender, EventArgs e) { DateTime d = Calendar1.SelectedDate; // int a; TextBox2.Text = d.ToShortDateString(); string s = Convert.ToDateTime(TextBox2.Text).ToShortDateString(); string s1 = Convert.ToDateTime(Label7.Text).ToShortDateString(); DateTime dt = Convert.ToDateTime(s).Date; DateTime dt1 = Convert.ToDateTime(s1).Date; if (dt <= dt1) { Response.Write("<script>alert('' Not a valid Date to extend warranty'')</script>"); } else { string diff = dt.Subtract(dt1).ToString(); Response.Write(diff); Label18.Text = diff; Session["diff"] = Label18.Text; } }