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

Przelicznik czasu ( tak jak w zegarze ) podanego z klawiatury. java

VPS Starter Arubacloud
0 głosów
978 wizyt
pytanie zadane 20 stycznia 2018 w Java przez heartagram Obywatel (1,770 p.)

cześć,

chciałem napisać program który po podaniu czasu z klawiatury np: 140 sekund 1 minuta 1 godzina. przeliczy mi to na -> 22 sekundy 3 minuty 1 godzina. I później pokaże mi to binarnie. No taki bajer :) Problem jest w tym, że sekundy mi konwertuje, ale nie dodaje minut których jest nadwyżka po 60 sekundzie itd. 

import java.util.Scanner;

class Test {
	private Scanner scannerS;
	private Scanner scannerH;
	private Scanner scannerM;

	void test() {
		int s = 0, m = 0, h = 0;
		System.out.println("PRZED: " + s + " " + m + " " + h);
		scannerS = new Scanner(System.in);
		scannerM = new Scanner(System.in);
		scannerH = new Scanner(System.in);
		System.out.println("Podaj Sec, Min, Hou, ");
		int S = scannerS.nextInt();
		int M = scannerM.nextInt();
		int H = scannerH.nextInt();
		s = S;
		m = M;
		h = H;
		System.out.println("Podałeś czas: " + s + "s " + m + "m " + h + "h ");
	//	System.out.println("Podałeś czas BINARNIE: " + Integer.toBinaryString(s) + "s " + Integer.toBinaryString(m)
		//		+ "m " + Integer.toBinaryString(h) + "h ");



		while (s > 59){
			{

				if((s%=59)>=10);
// TU BĘDZIE BŁĄD GDZIEŚ..
				m++;
			}
			while(m>59)
			{
				if((m%=59)>=10);
				h++;
			}
			
			
			
			System.out.println("Podany czas po zmianie: " + s + "s " + m + "m " + h + "h ");
		//	System.out.println("Podany czas po zmianie BINARNIE: " + Integer.toBinaryString(s) + "s "
		//			+ Integer.toBinaryString(m) + "m " + Integer.toBinaryString(h) + "h ");
		}

	}

}

public class Clock {

	public static void main(String[] args) {
		Test t = new Test();
		t.test();
	}

}

 

3 odpowiedzi

+2 głosów
odpowiedź 20 stycznia 2018 przez Beginer Pasjonat (22,110 p.)
wybrane 22 stycznia 2018 przez heartagram
 
Najlepsza
Zapisując w trochę krótszej formie, co kolega powyżej:

czas = łączny czas (który podajesz z klawiatury) zamieniony na sekundy;

godziny = czas / 3600;

minuty = (czas % 3600) / 60;

sekundy = (czas % 3600) % 60;
+1 głos
odpowiedź 20 stycznia 2018 przez Mikołaj Kawczynski Dyskutant (9,160 p.)
Tego się tak nie robi, bezsensu pętle. Zamieniasz wszystko na sekundy i sumujesz czyli totalSeconds = seconds + (minutes * 60) + (hours * 60^2). Następnie robisz to tak int hours = totalSeconds / 60^2. totalseconds = totalSeconds % 60^2.  Następnie int minutes = totalSeconds / 60. totalseconds = totalSeconds % 60; int seconds = totalSeconds. 6 linijek i po sprawie żadne pętle nie potrzebne. Trochę to przekombinowałeś.
0 głosów
odpowiedź 22 stycznia 2018 przez heartagram Obywatel (1,770 p.)
macie racje, przekombinowałem :)

dzięki
1
komentarz 22 stycznia 2018 przez Beginer Pasjonat (22,110 p.)
Nie ma sprawy. To się zdarza każdemu. Nikt nie jest wszechwiedzący.

Zawsze do usług.

www.enigma-open.pl

Podobne pytania

0 głosów
2 odpowiedzi 185 wizyt
pytanie zadane 11 lutego 2022 w JavaScript przez nielot Obywatel (1,270 p.)
0 głosów
2 odpowiedzi 875 wizyt
pytanie zadane 13 lutego 2018 w JavaScript przez Marchiew Dyskutant (7,730 p.)
+1 głos
1 odpowiedź 218 wizyt
pytanie zadane 12 sierpnia 2021 w JavaScript przez carinchen6 Nowicjusz (130 p.)

92,840 zapytań

141,781 odpowiedzi

320,856 komentarzy

62,172 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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...