• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zegar dziwnie liczy czas w C++

42 Warsaw Coding Academy
0 głosów
1,849 wizyt
pytanie zadane 28 czerwca 2019 w C i C++ przez KosaTV Obywatel (1,260 p.)
edycja 28 czerwca 2019 przez Arkadiusz Waluk

Pomyślałem dziś, że zrobię program zliczający sekundy, minuty, godziny i dni, gdy skończyłem zaskoczyło coś nie wiem dlaczego tak się stało ale niby zegar liczy normalnie, ponieważ z czasu 0:0:0:59 po sekundzie przechodzi na 0:0:1:0 , ale gdy przechodzi z minuty na godzine lub z godziny na dni to dzieje się coś takiego 0:0:59:59 a potem zamiast 0:1:0:0 jest 0:0:60:0 a potem idzie normalnie czyli 0:1:0:1 i gdy dojdzie do 0:1:59:59 to sytuacja się powtarza i tak w kółko tutaj daje kod:
 

#include <iostream>
#include <time.h>
#include <windows.h>
#include <cstdlib>
using namespace std;
int minuty;
int sekundy;
int godziny;
int dni;
int main()
{
    while(true)
    {
        cout << "D " << "H " << "M " << "S" << endl;
        cout << dni << ":" << godziny << ":" << minuty << ":" << sekundy << endl;
        sekundy++;
        Sleep(1000);
        system("cls");

        if (sekundy==60)
        {
            minuty++;
            sekundy-=60;
        }
        else if (minuty>=60)
        {
            godziny++;
            minuty-=60;
        }
        else if (godziny==24)
        {
            dni++;
            godziny-=24;
        }
    }

    return 0;
}

// Jeżeli ktoś chciałby to sprawdzić polecam usunąć komendę system("cls"); i zmniejszyć opużnienie.

1 odpowiedź

–1 głos
odpowiedź 28 czerwca 2019 przez ExtraSoft_User Nowicjusz (140 p.)
if (sekundy==60)
        {
            minuty++;
            sekundy-=60;
        }

 

 

w minucie jest 60 sekund w c++ liczy sie od 0
komentarz 28 czerwca 2019 przez KosaTV Obywatel (1,260 p.)
Okej., ale sekundy działają normalnie, przecież mimo że  mają wartość 60, tylko reszta nie działa
komentarz 28 czerwca 2019 przez DragonCoder Nałogowiec (36,500 p.)
Wyrzuc else if i zrob same ify. I co to za sekundy-=0? Ustaw je na 0 i tyle, sekundy = 0;

EDIT::

1. Po cholere jest tam windows.h? Chcesz pobierac czas systemowy lub uzyc jakies funkcji, czy jest tam bo tak? Ktos kto ma linuxa nie skompiluje tego

2. Co to za zmienne globalne, ktore w dodatku nie maja wartosci poczatkowej?

3. Czemu ten warunek: minuty>=60 jest inny od pozostalych?
komentarz 28 czerwca 2019 przez KosaTV Obywatel (1,260 p.)
Ok dzięki

Podobne pytania

0 głosów
1 odpowiedź 2,419 wizyt
pytanie zadane 20 czerwca 2017 w PHP przez sapero Gaduła (4,100 p.)
–1 głos
1 odpowiedź 352 wizyt
pytanie zadane 12 lutego 2018 w C i C++ przez Pabiak Gaduła (4,490 p.)
0 głosów
0 odpowiedzi 312 wizyt
pytanie zadane 11 grudnia 2018 w JavaScript przez Zelek Użytkownik (960 p.)

93,389 zapytań

142,385 odpowiedzi

322,547 komentarzy

62,749 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...