Java programmering, matematisk uträkning av flyg tid!

Permalänk

Java programmering, matematisk uträkning av flyg tid!

Hej

Flyger ultralätt flygplan och undrar om ni kan hjälpa mig en grej. Ett litet enkelt program för att göra om timmar och minuter direkt till rätt format. Ingen svår uträkning att göra men ett kul första program som man kan "använda" när lusten kliver på!

Jag har precis börjat med Java programmering, typ Hello World och lite till, men skulle vara skoj att göra detta. Men till problemet iallafall:

Hur ska jag skriva koden för just inmatning och utmatning. Jag har t.ex. 20tim och 685min. Vill få ut detta så det blir 31tim 25min direkt utan att behöva räkna om detta själv. Ska skriva in 20 och sen 685 och få ut det direkt i tim och min. Klappat och klart.

Så här började jag men kommer inte vidare:

import java.util.Scanner; public class Anders { public static void main(String[] args) { Scanner input = new Scanner(System.in); long tim, min, totalt; System.out.print("Mata in antal timmar: "); tim = input.nextInt(); System.out.print("Mata in antal minuter: "); min = input.nextInt(); System.out.printf() } }

Permalänk
Medlem

För timmarna: 685/60 = 11.41... , sen behöver du "bara" avrunda(osäker på om det alltid är neråt eller inte).
För minutrarna: 685 mod 60 = 25, skrivs troligen i Java som 685 % 60. 60 är ju konstant, om inte definitionen av tid ändras dvs.

Sen behöver du bara skriva ut resultatet. Tror inte du kommer undan utan att räkna själv, men jag kan ju ha fel.
En kort förklaring på mod(modulus):
I det här fallet tar vi minutrar modulus 60. Med modulus räknar man ut resten vid en heltalsdivision.
685/60 går som du såg ovan inte jämnt ut. Alltså får man kolla hur många gånger 60 går i 685 innan man "går över" 685. I det här fallet blir det 60 * 11. 60 * 11 = 660, och resten upp till 685(ursprungstalet) är 25. Det är den resten man får ut med modulooperatorn.

Visa signatur

Citera eller nämn gärna mig (@ToJa92) om du svarar på något jag skrivit.
Uppskattar du eller blir hjälpt av ett inlägg jag skrivit är jag tacksam om du gillar det.

Permalänk
Medlem

Vet inte hur väl du känner till modulo operationer, men slängde ihop en snabb lösning på ditt problem.

EDIT: Division med 2 integers ger en integer som resultat.

import java.util.Scanner; public class FlyTime { public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Antal timmar: "); int tim = in.nextInt(); System.out.print("Antal minuter: "); int min = in.nextInt(); tim += min / 60; min = min % 60; System.out.println("Timmar: " + tim + " ,Minuter: " + min); } }

Dold text
Visa signatur

"This is VAR, spelled A-U-T-O"

Permalänk

Supertack för svaren! Problem löst.