计算两个日期之间的天数,并在标签中显示

本文关键字:标签 显示 两个 之间 日期 计算 | 更新日期: 2023-09-27 18:01:23

嗨,我正在尝试捕获用户在c#日历控件中选择的两个日期,我希望日期范围显示在标签中。我已经制定了以下代码,但它产生一个减号值;不是实际的日期范围。

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 d1 = DateTime.Now;
DateTime d2 = DateTime.Now.AddDays(10);
TimeSpan difference = d2 - d1;      
var days = difference.TotalDays;
 DateTime.Now.Subtract(startDate).Days.ToString();

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

字符串天= (date2 - date1) .Value.Days.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;

注意:"daysBetweenDates"将包含小数天数(因此是double类型)。此外,上面的代码假设是当地时间。如果你想使用UTC,你需要考虑到这一点。