Program przeliczający ilość dni między 2 datami.
Ostatnio zmodyfikowano 2018-11-08 16:57
Damian_Wasiak Temat założony przez niniejszego użytkownika |
Program przeliczający ilość dni między 2 datami. » 2018-11-08 11:54:25 Witam mam do napisania program który poda różnicę dni między zetawem dwóch dat podanych przez uzytkownika, lecz napotkałem problem że funkcja sekundy() nie przelicza mi prawidłowo na sekundy podanej daty i zwraca wartość -1 lub w niektórych przypadkach jakąś wartość na - . Program musi mniej więcej posiadać taką strukturę oraz nazwy zmiennych według wytycznych które zostały mi podane, gdyż potem w funkcji dodaj_dzien() będą dodane warunki które bd zabezpieczały przed podaniem zlych danych np w roku przestepnym. #include<iostream> #include <time.h> using namespace std; int T[ 6 ]; int sekundy( int r, int m, int d, int g, int min, int s ) { tm czas; czas.tm_year = r; czas.tm_mon = m; czas.tm_mday = d; czas.tm_hour = g; czas.tm_min = min; czas.tm_sec = s; time_t sekundy = mktime( & czas ); return sekundy; }
int * dodaj_dzien() { int * wsk; int r, m, d, g, min, s; cin >> r >> m >> d >> g >> min >> s; T[ 0 ] = r; T[ 1 ] = m; T[ 2 ] = d; T[ 3 ] = g; T[ 4 ] = min; T[ 5 ] = s; wsk = T; return wsk; }
main() { int D; int * T1, * T2; cin >> D; for( int i = 0; i < D; i++ ) { T1 = dodaj_dzien(); T2 = dodaj_dzien(); cout << sekundy( T1[ 0 ], T1[ 1 ], T1[ 2 ], T1[ 3 ], T1[ 4 ], T1[ 5 ] ) << endl; cout << sekundy( T2[ 0 ], T2[ 1 ], T2[ 2 ], T2[ 3 ], T2[ 4 ], T2[ 5 ] ) << endl; } }
|
|
pekfos |
» 2018-11-08 16:57:04 Podajesz w ogóle poprawne wartości do mktime()? Nie możesz na przykład podać roku 2018 jako po prostu 2018. T1 = dodaj_dzien(); T2 = dodaj_dzien(); cout << sekundy( T1[ 0 ], T1[ 1 ], T1[ 2 ], T1[ 3 ], T1[ 4 ], T1[ 5 ] ) << endl; cout << sekundy( T2[ 0 ], T2[ 1 ], T2[ 2 ], T2[ 3 ], T2[ 4 ], T2[ 5 ] ) << endl; |
Te twoje T1 i T2 to ta sama tablica. |
|
« 1 » |