Je vois que cette question a été répondue pour Java , JavaScript et PHP , mais pas pour C #. Alors, comment peut-on calculer le nombre de jours entre deux dates en C #?
En supposant que StartDate
et StartDate
sont de type DateTime
:
(EndDate - StartDate).TotalDays
Utilisez l’object TimeSpan qui est le résultat de la soustraction de date:
DateTime d1; DateTime d2; return (d1 - d2).TotalDays;
La première réponse est correcte, cependant, si vous ne souhaitez que des jours complets en tant que int et renoncez volontiers à la composante temporelle de la date, considérez ce qui suit:
(EndDate.Date - StartDate.Date).Days
Encore une fois en supposant que StartDate et EndDate sont de type DateTime.
Je pense que cela fera ce que vous voulez:
DateTime d1 = DateTime.Now; DateTime d2 = DateTime.Now.AddDays(-1); TimeSpan t = d1 - d2; double NrOfDays = t.TotalDays;
DateTime xmas = new DateTime(2009, 12, 25); double daysUntilChristmas = xmas.Subtract(DateTime.Today).TotalDays;
Si quelqu’un veut un nombre entier de jours en double ( a
, b
de type DateTime
):
(a.Date - b.Date).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
Vous pouvez également obtenir la différence en secondes, millisecondes et ticks.
Vous pouvez essayer ceci
EndDate.Date.Subtract(DateTime.Now.Date).Days
Pour les débutants comme moi, cela se heurtera à ce petit problème, dans une ligne simple, avec une conversion d’échantillon en int :
int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);
Cela calcule le nombre total de jours à partir d’aujourd’hui (DateTime.UtcNow.Date) à une date souhaitée (myDateTime.Date).
Si myDateTime est hier, ou une date antérieure à aujourd’hui, cela donnera un résultat entier positif (+).
D’un autre côté, si myDateTime est demain ou à une date ultérieure, cela donnera un résultat négatif (-) en nombre entier dû aux règles d’addition.
Heureux codage! ^ _ ^
Pour a
et b
comme deux types DateTime
:
DateTime d = DateTime.Now; DateTime c = DateTime.Now; c = d.AddDays(145); ssortingng cc; Console.WriteLine(d); Console.WriteLine(c); var t = (c - d).Days; Console.WriteLine(t); cc = Console.ReadLine();
Utiliser un intervalle de temps résoudrait les problèmes car il possède de nombreux atsortingbuts:
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();
Déclarez d’abord une classe qui reviendra plus tard:
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(); }
Utilisez un contrôle de bouton pour appeler la classe ci-dessus. Voici un exemple:
Vous pouvez utiliser le code ci-dessous:
int DateDifInSecond = EndDate.Subtract(StartDate).TotalSeconds
Faites la différence entre les deux dates et obtenez les jours suivants:
int total_days = (EndDate - StartDate).TotalDays
protected void Calendar1_SelectionChanged(object sender, EventArgs e) { DateTime d = Calendar1.SelectedDate; // int a; TextBox2.Text = d.ToShortDateSsortingng(); ssortingng s = Convert.ToDateTime(TextBox2.Text).ToShortDateSsortingng(); ssortingng s1 = Convert.ToDateTime(Label7.Text).ToShortDateSsortingng(); DateTime dt = Convert.ToDateTime(s).Date; DateTime dt1 = Convert.ToDateTime(s1).Date; if (dt <= dt1) { Response.Write(""); } else { ssortingng diff = dt.Subtract(dt1).ToSsortingng(); Response.Write(diff); Label18.Text = diff; Session["diff"] = Label18.Text; } }