[c#] Calcule la diferencia entre dos fechas (cantidad de días)?



Answers

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

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

Veo que esta pregunta ha sido respondida para Java , JavaScript y PHP , pero no para C #. Entonces, ¿cómo se puede 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 un doble ( a , b de tipo DateTime ):

 (a.Date - b.Date).TotalDays



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;



Para principiantes como yo que tropezarán 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 a partir de hoy (DateTime.UtcNow.Date) a la fecha deseada (myDateTime.Date).

Si myDateTime es ayer o una fecha anterior a la actual, dará un resultado entero positivo (+).

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

Feliz codificación! ^ _ ^




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

int total_days = (EndDate - StartDate).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.




Primero declara una clase que volverá 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();
}

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




Links



Tags

c# c#   date