[C++] Struktura systemtime i niedokładny czas

Witam

Napisałem sobie program, który odlicza czas do nowego roku. Aby nie zaśmiecać forum kodem, podaję link do źródła: http://www.nopaste.pl/Source/jve.txt

Mam z tym programem 2 problemy.

  1. Zła godzina. Może jest to spowodowane dwoma czasami… W każdym razie, aby odliczanie było zgodne z aktualnym czasem, musiałem dodać to:

    [Linia 37] ret[1] = itos(24-st.wHour-1-(ret[2]!=“60” ? 1 : 0));

  2. “Przeskakiwanie” sekund. Tutaj już kompletnie nie wiem, o co chodzi… Po prostu po chwili od uruchomienia program, zamiast “odjąć” sekundę, “odejmuje” dwie…

Przepraszam, że tak kodem zarzucam, ale to najlepiej obrazuje problem. Jeśli ktoś chce ( nie wymagam tego oczywiście ), prosiłbym o podpowiedzi do optymalizacji.

Kod jest tak długi i w niektórych miejscach zawiły dlatego, że format podawanego pozostałego czasu jest zgodny z polską ortografią (np. gdy pojawia się 22, dodaję “y” i wychodzi "22 sekund y ) i interpunkcją (przecinki ładnie pododawane). Dodatkowo, jeśli byłoby np. “0 sekund” - program tego nie wyświetla i wszystko jest odpowiednio przeformatowane.

Pozdrawiam, życzę szczęśliwego nowego roku i z góry dziękuję za pomoc.