我试图通过C#.my代码从月份日历中获取日期计数
leave.Amount = Convert.ToInt32((mclDateRange.SelectionEnd - mclDateRange.SelectionStart).TotalDays.ToString());
我得到了这样的错误
输入字符串的格式不正确。
答案 0 :(得分:5)
TimeSpan.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);
答案 1 :(得分:1)
以下是有关如何区分两个日期时间对象的分步示例。只需将其应用于您的代码
即可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。
答案 2 :(得分:-2)
这是我为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 ..........
}