2017-08-08 1 views
1

Ich subtrahiere zwei Daten und vergleiche dann den Tagesunterschied mit der Anzahl der Tage innerhalb eines Monats, aber es stürzt ab. Hier ist der Code:Fehler beim Vergleich der Zeitdifferenz mit der Anzahl der Tage im Monat

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

und der Fehler Ich erhalte ist:

Konnte nicht das Objekt des Typs 'System.TimeSpan' werfen geben 'System.IConvertible'

Warum passiert das?

+0

TimeSpan implementiert nicht 'IConvertible', was' Convert.ToInt32 (...) 'erwartet. – Amy

+0

@Amy also, was muss ich konvertieren, um die Zahlen zu vergleichen? – djblois

+0

Es ist nicht konvertierbar zu einer Nummer. Was bedeutet es für einen Zeitraum, wenn er nur konzeptionell gesprochen wird, in eine Zahl umgewandelt zu werden? Eine Zeitspanne hat zahlreiche Eigenschaften, um eine bestimmte Zeit zu erreichen, z. B. "TotalMilliseconds" oder "Days", die die Anzahl der Millisekunden oder Tage angeben, die durch die Zeitspanne dargestellt werden. – Amy

Antwort

0

Also, wenn ich verstehe, was Sie versuchen, habe ich die Convert.ToInt32 und hinzugefügt .Days. Das sollte funktionieren. Also versuchen:

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