C# 计算两个日期之间的天数并将其显示在标签中

C# 计算两个日期之间的天数并将其显示在标签中,c#,asp.net,calendar,C#,Asp.net,Calendar,您好,我正在尝试捕获用户在C#Calendar控件中选择的两个日期,我希望在标签中显示日期范围。我已经编写了以下代码,但它会生成一个负值;不是实际的日期范围 DateTime from = CalFrom.SelectedDate; DateTime to = CalTo.SelectedDate; double days = (CalTo.SelectedDate - CalFrom.SelectedDate).TotalDays; TimeSpan t = to - from; double

您好,我正在尝试捕获用户在C#Calendar控件中选择的两个日期,我希望在标签中显示日期范围。我已经编写了以下代码,但它会生成一个负值;不是实际的日期范围

DateTime from = CalFrom.SelectedDate;
DateTime to = CalTo.SelectedDate;
double days = (CalTo.SelectedDate - CalFrom.SelectedDate).TotalDays;
TimeSpan t = to - from;
double noOfDays = t.TotalDays;
TimeSpan ts = to - from;
double differnceindays = ts.TotalDays;
lblNoofDays.Text = differnceindays.ToString();

我看到的唯一问题是,您假设开始日期和结束日期将正确地进行范围检查,这意味着开始日期永远不会大于结束日期(这将为总天数产生负值)。如果您想纠正“开始日期”可能在“结束日期”之后这一事实,那么这应该是可行的

DateTime startDate = DateTime.Now.AddDays(-94); // Example random 94 day span..
DateTime endDate = DateTime.Now;
TimeSpan duration = endDate > startDate ? endDate - startDate : startDate - endDate;
double daysBetweenDates = duration.TotalDays;

注:“DaysBetween Dates”将包括分数天(因此为双精度类型)。此外,上面的代码假定为本地时间。如果您想要UTC,您需要对此进行说明。

此代码非常适合我计算两天之间的天数

 DateTime.Now.Subtract(startDate).Days.ToString();
DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(10);
TimeSpan difference = d2 - d1;      
var days = difference.TotalDays;

尝试计算两个日期之间的天数

string days=(date2-date1.Value.days.ToString()

可能的副本