Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.88 KB | None | 0 0
  1. #include <iostream>
  2. #include<ctime>
  3.  
  4. // funkcja tworzaca zmienna time_t z podana data
  5.  
  6. time_t utc(int year, int mon, int day, int hour, int min, int sec)
  7. {
  8.     struct tm time = {0};
  9.     time.tm_year = year -1900;
  10.     time.tm_mon = mon -1;
  11.     time.tm_mday = day;
  12.     time.tm_hour = hour;
  13.     time.tm_min = min;
  14.     time.tm_sec = sec;
  15.     time.tm_isdst = -1;
  16.     time_t  nowa=mktime(&time);
  17.     return nowa;
  18.  
  19.  
  20. }
  21.  
  22.  
  23. int main()
  24. {
  25.     time_t now=utc(1989, 01, 6, 0, 0, 0);
  26.     int dzien=100, miesiac=100 ,rok=0,godzina=100,minuta=100,sekunda=100 ;
  27.  
  28.    
  29.     //wczytywanie danych
  30.     std::cout<<" podaj date";
  31.  
  32.     while (!( dzien >= 1 && dzien <= 31 ))
  33.     {
  34.         std::cout<<"\n dzien:";
  35.         std::cin>>dzien;
  36.     }
  37.     while (!( miesiac >= 1 && miesiac <= 12 ))
  38.     {
  39.         std::cout<<"\nmiesiac:";
  40.         std::cin>>miesiac;
  41.     }
  42.     while (rok <=1989)
  43.     {
  44.         std::cout<<"\nrok:";
  45.         std::cin>>rok;
  46.     }
  47.  
  48.     while (!( godzina >= 0 && godzina <=23  ))
  49.     {
  50.         std::cout<<"\ngodzine:";
  51.         std::cin>>godzina;
  52.     }
  53.  
  54.         while (!( minuta >= 0 && minuta <=59  ))
  55.     {
  56.         std::cout<<"\nminute:";
  57.         std::cin>>minuta;
  58.     }
  59.  
  60.     while (!( sekunda >= 0 && sekunda <=59  ))
  61.     {
  62.         std::cout<<"\nsekunde:";
  63.         std::cin>>sekunda;
  64.     }
  65.  
  66.  
  67.  
  68.     time_t obecna = utc(rok,miesiac,dzien,godzina,minuta,sekunda) ;
  69.    
  70.     //obliczenie ruznicy sekund pomiedzy datami
  71.     double sec = difftime(obecna ,now );
  72.    
  73.     //obliczenie pelnych tygodni pomiedzy  datami  
  74.     int week = int(sec /(60*60*24*7));
  75.    
  76.     // obliczenie pozostalych sekund
  77.     double sec_dif = int(sec)%(60*60*24*7);
  78.  
  79.    
  80.     //wypisanie wyniku
  81.     std::cout << " od daty "<< ctime(&now)<< " do daty ";
  82.     std::cout<<ctime(&obecna)<< std::endl <<"minelo " << week <<" tygodni i "<< sec_dif <<" sekund";
  83.  
  84.  
  85.     getchar();
  86.  
  87.     return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement