rendered paste body#include <stdio.h>#include <windows.h>#include <time.h>bool GetDateParts(char *szDate, int *lpnDateParts);int DaysSinceYearStart(int nMonth, int nYear);void main(void){ char szTimeStart[] = "26-12-2007"; // dd-mm-yyyy char szTimeEnd[] = "26-12-2008"; int lpnDateStart[3]; // 0 day 1 mon 2 year int lpnDateEnd[3]; double dblstart, dblend; GetDateParts(szTimeStart, lpnDateStart); GetDateParts(szTimeEnd, lpnDateEnd); // sec in day = 86400 // sec in month = ndays * 86400 // sec in year = 365.25 * 86400 = 7464960000 int nModYear = lpnDateStart[2] > lpnDateEnd[2] ? lpnDateEnd[2] : lpnDateStart[2]; // normalize year so we don't have some huge amount of seconds int nYearStart2 = lpnDateStart[2] - nModYear; int nYearEnd2 = lpnDateEnd[2] - nModYear; // transform both dates into a numeric timestamp dblstart = (double)nYearStart2 * 7464960000.0000; dblstart += (double)DaysSinceYearStart(lpnDateStart[1], lpnDateStart[2]) * 86400.0000; dblstart += (double)lpnDateStart[0] * 86400.0000; dblend = (double)nYearEnd2 * 7464960000.0000; dblend += (double)DaysSinceYearStart(lpnDateEnd[1], lpnDateEnd[2]) * 86400.0000; dblend += (double)lpnDateEnd[0] * 86400.0000; // calc diff double dbldiff = dblend > dblstart ? dblend-dblstart : dblstart-dblend; printf("Diff between dates is %0.00f sec.\n", dbldiff); }int DaysSinceYearStart(int nMonth, int nYear){ int nDays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int nCnt = 0; // account for leap year if (nYear % 4 == 0) nDays[1]++; // sum up days occured since start of year (not including curr month) for (int i = 0; i < (nMonth - 1); i++) nCnt += nDays[i]; return nCnt;}bool GetDateParts(char *szDate, int *lpnDateParts){ char *szToken = strtok(szDate, "-"); // seperate szTime by - if (szToken == NULL) return false; lpnDateParts[0] = atoi(szToken); // get day szToken = strtok(NULL, "-"); if (szToken == NULL) return false; lpnDateParts[1] = atoi(szToken); // get month szToken = strtok(NULL, "-"); if (szToken == NULL) return false; lpnDateParts[2] = atoi(szToken); // get day return true;}