我正在尝试从 C# 上的月历中获取日期计数。我的代码是这样的
leave.Amount = Convert.ToInt32((mclDateRange.SelectionEnd - mclDateRange.SelectionStart).TotalDays.ToString());
我有这样的错误
输入字符串的格式不正确。
我正在尝试从 C# 上的月历中获取日期计数。我的代码是这样的
leave.Amount = Convert.ToInt32((mclDateRange.SelectionEnd - mclDateRange.SelectionStart).TotalDays.ToString());
我有这样的错误
输入字符串的格式不正确。
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);
这是有关如何区分两个日期时间对象的分步示例。只需将其应用于您的代码
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 所做的方式,希望它适用于月历
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 ..........
}