Czas - sprawdzanie, wczytywanie, operacje
Ostatnio zmodyfikowano 2012-04-30 22:28
hincu |
» 2012-04-26 15:16:27 @up jakbys nie widzial to on dzialal na stringach wiec raczej wszystko jest nie tak :) |
|
Admixior |
» 2012-04-26 15:18:32 //a rzeczywiście pisałem wyżej że jak chce zamieniać na string to musi użyć to_string; godziny = czas.wHour; kopiuje tylko ostatni bajt liczby jako znak godziny = to_string((long long int)czas.wHour); zamienia na tekst
//edit: i przed to_string() musi zmienić tak jak pisałem 2 posty wyżej bo inaczej może być 14:50:80 :) |
|
Temes Temat założony przez niniejszego użytkownika |
» 2012-04-30 12:32:47 A ja nadal nie widzę błędu... Nie działa, eh.. Napisałem kod w innym programie, aby się nie pogubić. Lecz nie działa i tak... Przypominam że komputer musi pobrać czas z komputera i potem doliczyć, że czas misji trwa 30 sekund, czyli jak jest 12:00:00 to koniec misji jest o 12:00:30 - poprawcie mi jakoś ten kod, bo ja próbuję, próbuję i nie działa... int main() { short Godziny; short Minuty; short Sekundy; short CzasMisjiGodz; short CzasMisjiMin; short CzasMisjiSek; int CzasEnd; int Wybor; int Blokada; SYSTEMTIME czas; GetLocalTime( & czas ); Blokada = 0; do { system( "cls" ); std::cout << "[1] START" << std::endl; std::cin >> Wybor; if( Wybor == 1 ) { if( Blokada == 0 ) { system( "cls" ); Godziny = czas.wHour; Minuty = czas.wMinute; Sekundy = czas.wSecond; std::cout << " Start misji o: " << czas.wHour << ":" << czas.wMinute << ":" << czas.wSecond << std::endl; std::cout << " Misja trwa 30 sekund" << std::endl; CzasMisjiGodz = czas.wHour; CzasMisjiMin = czas.wMinute; CzasMisjiSek =(( czas.wSecond ) + 30 ); if( CzasMisjiSek >= 60 ) { CzasMisjiMin = czas.wMinute + 1; CzasMisjiSek = czas.wSecond - 60; } if( CzasMisjiMin >= 60 ) { CzasMisjiGodz = czas.wHour + 1; CzasMisjiSek = czas.wMinute - 60; } std::cout << " Koniec misji o: " << CzasMisjiGodz << ":" << CzasMisjiMin << ":" << CzasMisjiSek << std::endl; getch(); Blokada = 1; } if( Blokada == 1 ) { system( "cls" ); std::cout << " Koniec misji o: " << CzasMisjiGodz << ":" << CzasMisjiMin << ":" << CzasMisjiSek << std::endl; if( CzasMisjiSek >= 60 ) { CzasMisjiMin = czas.wMinute + 1; CzasMisjiSek = czas.wSecond - 60; } if( CzasMisjiMin >= 60 ) { CzasMisjiGodz = czas.wHour + 1; CzasMisjiSek = czas.wMinute - 60; } if( czas.wHour >= CzasMisjiGodz && czas.wMinute >= CzasMisjiMin && czas.wSecond >= CzasMisjiSek ) { std::cout << " Wykonane!"; getch(); Blokada = 0; } else { std::cout << " Niewykonane."; getch(); } } } } while( CzasEnd != 1 ); } |
|
Admixior |
» 2012-04-30 20:54:33 Po uno CzasEnd zanim przejdzie przez to: } } while( CzasEnd != 1 );
musisz mu coś przypisać,jeśli chcesz żeby pętla ciągle była po prostu napisz true albo 1, jeżeli do czegoś innego słurzy to przypisz odpowiednią wartość. Po drugie: Godziny = czas.wHour; Minuty = czas.wMinute; Sekundy = czas.wSecond;
nigdzie tego nie używasz więc po co marnować cenne linijki kodu na deklaracje i przypisanie(no chyba że to jest kod wycięty) po trzecie: nie będę dawał gotowca podpowiem że masz problem z pobieraniem czasu. Zobacz kiedy się on pobiera (a kiedy (za każdym razem) powinien), która godzina jest na ekranie, a która powinna być... |
|
Temes Temat założony przez niniejszego użytkownika |
» 2012-04-30 22:28:10 Wow... Nie spodziewałem się że wyjdzie :O Działa... O_O Nareszcie... Tak długo... A wystarczyło zmienić 2 linijki kodu i usunąć jakieś 5... ... ... Czuję się jakby moje życie stało się jaśniejsze O_O
/EDIT Edit nieaktualny :x Znalazłem rozwiązanie |
|
1 2 « 3 » |