如何在c#月历中获得SelectStartDate和SelectEndDate之间的差异
本文关键字:SelectEndDate 之间 SelectStartDate 月历 | 更新日期: 2023-09-27 18:14:51
我正在尝试从c#的月日历中获取日期计数。我的代码像这样
leave.Amount = Convert.ToInt32((mclDateRange.SelectionEnd - mclDateRange.SelectionStart).TotalDays.ToString());
我得到了这样的错误
输入字符串格式不正确。
时间跨度。TotalDays属性是double类型的,您可以获得像
这样的整数部分:leave.Amount = (int) (mclDateRange.SelectionEnd - mclDateRange.SelectionStart).TotalDays;
考虑下面的例子:
double d = 123.22d;
int number = Convert.ToInt32(d.ToString());
将导致异常
Input string was not in a correct format.
所以在你的代码中,你可以省略调用ToString
,它会很好,就像:
leave.Amount =
Convert.ToInt32(
(mclDateRange.SelectionEnd - mclDateRange.SelectionStart).TotalDays);
下面是一个逐步区分两个datetime对象的示例。只要把它应用到你的代码
DateTime startDate = DateTime.Parse("01/01/2013");
DateTime endDate = DateTime.Parse("05/22/2013");
TimeSpan dateDiff = endDate.Subtract(startDate);
int dayDiff = dateDiff.Days;
如果您想将小数天数(如4天18小时)舍入到最接近的天数(在本例中为5天),则使用TotalDays属性并转换为Int。
这是我为datetimepicker所做的方式,希望它能工作到monthcalendar
DateTime dt;
DateTime Todate ,FromDate;
Todate = DateTime.ParseExact(datetimepicker1.Value.Date.ToString("dd/MM/yyyy"), "dd/MM/yyyy", CultureInfo.InvariantCulture);
FromDate = DateTime.ParseExact(datetimepicker2.Value.Date.ToString("dd/MM/yyyy"), "dd/MM/yyyy", CultureInfo.InvariantCulture);
double datedifference = (Todate - FromDate).TotalDays;
然后可以像这样检查日期
if(datedifference <2)
{
something ..........
}