C# 将时差与月份天数进行比较时出错
我在减去两个日期,然后将日差与一个月内的天数进行比较,但结果是崩溃了。代码如下:C# 将时差与月份天数进行比较时出错,c#,timespan,C#,Timespan,我在减去两个日期,然后将日差与一个月内的天数进行比较,但结果是崩溃了。代码如下: if (Convert.ToInt32(DateTime.Now.Subtract(File.GetLastWriteTime(TestWorkbook(worksheets[i].Path) + ".xlsx").Date)) < DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)) if(Convert.ToInt32(DateTime
if (Convert.ToInt32(DateTime.Now.Subtract(File.GetLastWriteTime(TestWorkbook(worksheets[i].Path) + ".xlsx").Date)) < DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month))
if(Convert.ToInt32(DateTime.Now.Subtract(File.GetLastWriteTime(TestWorkbook(工作表[i].Path)+“.xlsx”).Date))
我收到的错误是:
无法将“System.TimeSpan”类型的对象强制转换为
“System.IConvertible”
为什么会发生这种情况?因此,如果我理解您的意图,我会删除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
if(DateTime.Now.Subtract(File.GetLastWriteTime(TestWorkbook(工作表[i].Path)+“.xlsx”).Date)。Days
因此,如果我理解您的意图,我会删除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
if(DateTime.Now.Subtract(File.GetLastWriteTime(TestWorkbook(工作表[i].Path)+“.xlsx”).Date)。Days
TimeSpan没有实现IConvertible
,这是Convert.ToInt32(…)
所期望的。@Amy那么我需要将它转换成什么来比较数字呢?它不能转换成数字。从概念上讲,将时间跨度转换为数字意味着什么?timespan有许多属性可用于获取超时长度,例如TotalMillicles
或Days
,它们分别提供timespan表示的毫秒数或天数。timespan不实现IConvertible
,这就是转换.ToInt32(…)
expected.@Amy那么我需要将它转换成什么来比较数字呢?它不能转换成数字。从概念上讲,将时间跨度转换为数字意味着什么?timespan具有许多用于获取超时长度的属性,例如totalmillizes
或Days
,它们分别提供timespan表示的毫秒数或天数。