Für ein Projekt im Entwickeln muss ich einen Unterschied zwischen zwei Daten finden, um zu überprüfen, welche jünger ist, und mir ging es gut, aber ich fand einen kleinen Fehler.C Unterschied zwischen Tagen 1 Tag funktioniert nicht
für die Tage struct tm im mit, das ist der Code:
struct tm firstDate, secondDate;
firstDate.tm_hour = 0;
firstDate.tm_min = 0;
firstDate.tm_sec = 0;
firstDate.tm_mon = 5;
firstDate.tm_mday = 30;
firstDate.tm_year = 2016 - 1900; //difference between current year and 1900
secondDate.tm_hour = 0;
secondDate.tm_min = 0;
secondDate.tm_sec = 0;
secondDate.tm_mon = 6;
secondDate.tm_mday = 1;
secondDate.tm_year = 2016 - 1900;
time_t fDate = mktime(&firstDate); // 31/5/2016
time_t sDate = mktime(&secondDate); // 1/6/2016
int diff = (difftime(fDate, sDate));
printf("%d", diff/86400);
es in jedem Zeitpunkt funktioniert, außer wenn ich will, wie ein Datum am Ende des Monats vergleichen (31/5/2016) mit dem folgenden Tag (1/6/2016), gibt es mir 0 Tage zurück und es sollte 1 zurückgeben. Aber wenn ich es zum 30/5/2016 ändere, gibt es 1 Tag statt 2 zurück. Das Ding ist kann 31 Tage sein nicht 30 .. so funktioniert es in einigen Monaten und in anderen funktioniert es nicht .. weiß jemand, wie man darüber hinaus kommt?
Vielen Dank im Voraus und sorry für mein schlechtes Englisch, ist es nicht meine Muttersprache
thanks man wirklich zu schätzen. Ich werde die Antwort akzeptieren, wenn ich kann – jamez