1

我正在尝试从 C# 上的月历中获取日期计数。我的代码是这样的

leave.Amount = Convert.ToInt32((mclDateRange.SelectionEnd - mclDateRange.SelectionStart).TotalDays.ToString());

我有这样的错误

输入字符串的格式不正确。

4

3 回答 3

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);
于 2013-05-22T06:53:37.000 回答
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。

于 2013-05-22T08:49:24.477 回答
-2

这是我为 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 ..........
}
于 2013-05-22T07:05:46.900 回答