Conviene convertire le date in Julian Day:
codice:#include <cstdlib> #include <iostream> using namespace std; double JulianDay(int year, int month, int day) { double retValue; double Y, M, D; double A, B; D = day; if ( month <= 2 ) { Y = year - 1; M = month + 12; } else { Y = year; M = month; } A = (int)(Y/100); B = 2 - A + (int)(A/4); retValue = (int)(365.25 * (Y + 4716)) + (int)(30.6001 * (M + 1)) + D + B - 1524.5; return retValue; } int main () { int d1, m1, y1; int d2, m2, y2; double jd1, jd2; int diff; d1 = 5; m1 = 2; y1 = 1995; d2 = 31; m2 = 8; y2 = 2014; jd1 = JulianDay(y1, m1, d1); jd2 = JulianDay(y2, m2, d2); diff = (int)(jd2 - jd1); cout << endl; cout << "Data 1: " << d1 << "/" << m1 << "/" << y1 << endl; cout << "Data 2: " << d2 << "/" << m2 << "/" << y2 << endl; cout << "Differenza in giorni: " << diff << endl << endl; return 0; }
Output:
[vincenzo]$ g++ -Wall -W -pedantic -O2 jd.cpp -o jd
[vincenzo]$ ./jd
Data 1: 5/2/1995
Data 2: 31/8/2014
Differenza in giorni: 7147
L'algoritmo è preso da Astronomical Algorithms di Jean Meeus.

Rispondi quotando
