2017-08-08 74 views
1

我正在减去两个日期,然后将日差与一天内有多少天进行比较,但它正在崩溃。下面是代码:将时间差与月中的天数进行比较时出错

if (Convert.ToInt32(DateTime.Now.Subtract(File.GetLastWriteTime(TestWorkbook(worksheets[i].Path) + ".xlsx").Date)) < DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)) 

和我收到的错误是:

无法转换类型 'System.TimeSpan' 到类型 'System.IConvertible'

的对象

这是怎么发生的?

+0

TimeSpan未实现'IConvertible',这就是'Convert.ToInt32(...)'所期望的。 – Amy

+0

@Amy所以我需要将其转换为比较数字? – djblois

+0

它不能转换为数字。从概念上讲,一个时间跨度被转换为一个数字意味着什么?时间跨度有很多属性可用于获取超时时间,例如'TotalMilliseconds'或'Days',它们分别为您提供时间范围表示的毫秒数或天数。 – Amy

回答

0

因此,如果我明白你正在尝试做什么,我删除了Convert.ToInt32并添加了.Days。这应该工作。因此,请尝试:

if (DateTime.Now.Subtract(File.GetLastWriteTime(TestWorkbook(worksheets[i].Path) + ".xlsx").Date).Days < DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)) 
    //Do whatever 
相关问题