All pastes #966079 Raw Edit

Something

public c v1 · immutable
·published 2008-04-01 13:49 UTC
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;}