Witam koledzy programiści mam za zadanie napisać program który poda różnice między zestawem 2 dat podanych przez użytkownika.Niestety napotkałem problem że funkcja sekundy() nie przelicza mi podanego w formacie R-M-D-G-Min-S na sekundy mam podejrzenia że liczba wykracza poza zakres i dlatego wywala raz -1 a nieraz jakąś inną liczbę ujemną oto cały kod.
Muszę się kierować wytycznymi podanymi w zadaniu takimi jak nazwy zmiennych oraz to że T1 T2 podane przez użytkownika zwane są chwilami,takie wymagania prowadzącego zajęcia.
Schemat działania:
1.Użytkownik podaje liczbę zestawów D,każdy zestaw zawiera 2 daty nazywane chwilami w formacie Rok miesiąc godzina minuta sekunda
2.No i następnie do T1 zostaje przypisany wskażnik z pierwszego elementu tablicy zawierającą dane chwili podanej przez użytkownika i analogiczie do T2 wskaźnik do drugiej chwili.
3.No i tutaj funkcja sekundy powinna zamieniać podane chwile na sekundy lecz tego nie robi.
#include<iostream>
#include <time.h>
using namespace std;
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,T[6];
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(*T2,*T2+1,*T2+2,*T2+3,*T2+4,*T2+5)-(*T1,*T1+1,*T1+2,*T1+3,*T1+4,*T1+5))/86400<<endl ;
}
}