Je vois que cette question a été répondue pour Java , JavaScript , et PHP , mais pas C #. Alors, comment peut-on calculer le nombre de jours entre deux dates en C #?
En supposant que StartDate
et EndDate
sont de type DateTime
:
(EndDate - StartDate).TotalDays
Utilisez l'objet TimeSpan qui est le résultat de la soustraction de la date:
DateTime d1;
DateTime d2;
return (d1 - d2).TotalDays;
La réponse principale est correcte, cependant, si vous souhaitez uniquement TOUT le jour en tant qu'int et si vous êtes heureux de renoncer à la composante heure de la date, alors tenez compte des points suivants:
(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 de jours entiers en tant que 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, en millisecondes et en ticks.
Tu peux essayer ça
EndDate.Date.Subtract(DateTime.Now.Date).Days
Pour les débutants comme moi, ce problème minime tombera dans une ligne simple, avec un exemple de conversion en int:
int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);
Ceci calcule le nombre total de jours à compter d’aujourd’hui (DateTime.UtcNow.Date) et la date souhaitée (myDateTime.Date).
Si myDateTime est hier ou une date antérieure à celle d'aujourd'hui, cela donnera un résultat entier positif (+).
D'un autre côté, si myDateTime est demain ou à la date future, cela donnera un résultat entier négatif (-) en raison de règles d'addition.
Bon codage! ^ _ ^
Utiliser un intervalle de temps résoudrait les problèmes car il possède de nombreux attributs:
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();
Pour a
et b
sous la forme de deux types 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();
Obtenez la différence entre les deux dates, puis les jours suivants:
int total_days = (EndDate - StartDate).TotalDays
Commencez par déclarer 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 bouton de contrôle pour appeler la classe ci-dessus. Voici un exemple:
Vous pouvez utiliser le code ci-dessous:
int DateDifInSecond = EndDate.Subtract(StartDate).TotalSeconds