Witam mam do napisania program który pokaże ilość dni między 2 podanymi przez użytkownika przedziałami czasowymi,niestety pogubiłem się w momencie przeliczania konkretnych dat na sekundy i wynik mi się nie zgadza przy wprowadzeniu danych
1
1997 12 31 0 0 0
1998 1 1 0 0 0
Powinno mi wypluć wynik 1 ponieważ tyle pełnych dni jest między podanym zakresem.
Pierwszy wiersz określa ile zestawów przedziałów czasowych chce podać użytkownik.
W tym przypadku 1 oznacza 1 zestaw po 2 daty,wiec 3 oznaczała by 3 zestawy po 2 daty itp.
#include <iostream>
using namespace std;
main()
{
int D, r, m, d, g, min, s;
cin >> D;
unsigned long long int daty[D * 2][7];
for (int i = 0; i < D * 2; i += 2) {
for (int j = 0; j < 2; j++) {
cin >> r >> m >> d >> g >> min >> s;
if ((r >= 1600 && r <= 2500 && m >= 1 && m <= 12 && d >= 1 && d <= 31 && g >= 0 && g <= 23 && min >= 0 && min <= 59 && s >= 0 && s <= 59)) {
daty[i + j][0] = r;
daty[i + j][1] = m;
daty[i + j][2] = d;
daty[i + j][3] = g;
daty[i + j][4] = min;
daty[i + j][5] = s;
daty[i + j][6] = 1;
}
else
return 0;
}
}
for (int i = 0; i < D * 2; i++) {
daty[i][6] = daty[i][0] * 365 * 31 * 24 * 60 * 60 + daty[i][1] * 31 * 24 * 60 * 60 + daty[i][2] * 24 * 60 * 60 + daty[i][3] * 60 * 60 + daty[i][4] * 60 + daty[i][5];
}
for (int i = 0; i < D * 2; i += 2) {
cout << (daty[i][6] - daty[i + 1][6]) / 31556926;
}
}