c# - uma - vb net diferença entre datas




Calcular diferença entre duas datas(número de dias)? (10)

A resposta principal está correta, no entanto, se você quiser apenas TODOS OS DIAS como um int e estiver satisfeito em renunciar ao componente de tempo da data, considere:

(EndDate.Date - StartDate.Date).Days

Novamente, assumindo que StartDate e EndDate são do tipo DateTime.

Vejo que esta questão foi respondida para Java , JavaScript e PHP , mas não para C #. Então, como se pode calcular o número de dias entre duas datas em c #?


Assumindo que StartDate e EndDate são do tipo DateTime :

(EndDate - StartDate).TotalDays

Eu acho que isso vai fazer o que você quer:

DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(-1);

TimeSpan t = d1 - d2;
double NrOfDays = t.TotalDays;

Obter a diferença entre as duas datas e, em seguida, obter os dias de:

int total_days = (EndDate - StartDate).TotalDays

Para iniciantes como eu, que se depararão com este pequeno problema, em uma linha simples, com conversão de amostra para int :

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

Isso calcula o total de dias de hoje (DateTime.UtcNow.Date) para uma data desejada (myDateTime.Date).

Se myDateTime for ontem ou data mais antiga que hoje, isso fornecerá um resultado inteiro positivo (+).

Por outro lado, se myDateTime for amanhã ou na data futura, isso dará um resultado inteiro negativo (-) devido às regras de adição.

Codificação feliz! ^ _ ^


Primeiro declare uma classe que retornará mais 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 um controle de botão para chamar a classe acima. Aqui está um exemplo:


Use o objeto TimeSpan, que é o resultado da subtração de data:

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

Você pode tentar isso

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

// 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

Você também pode obter a diferença em segundos, milissegundos e ticks.


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;
    }
}   




date