Brauche Hilfe, Anfänger findet Fehler nicht!

sha1337

Grünschnabel
Hallo Leute, ich hoffe, dass ich in der richtigen Ecke bin :p...
Bin ein blutiger Anfänger, was Java betrifft und hoffe auf eure Hilfe!

Ich habe eine Aufgabe, in dem 40000000 Sekunden in Jahre, Wochen, Tage, Stunden, Minuten und Sekunden umgerechnet werden sollen. Mit der Beispielzahl ( 40000000 ) wurde das richtige Ergebniss mitgegeben: 1 Jahr(e), 13 Woche(n), 6 Tag(e), 23 Stunde(n),
6 Minute(n), 40 Sekunde(n).

Ich habe einfach drauf losprogrammiert und bin mit dem Ergebniss zufrieden, wäre da nicht ein Fehler, den ich nicht finde.
Alle Funktionen funktionieren, allerdings kommt bei der Beispielszahl !! 0 !! Tage raus, der Rest stimmt! Hier mal mein Quellcode:


{
int sek1 = 1;
int min = (60*sek1);
int std = (60*min);
int tag = (24*std);
int wek = (7*tag);
int jah = (365*tag);

System.out.println("Sekunden: ");
BufferedReader eingabe2 = new BufferedReader(new InputStreamReader(System.in));
String eingabe = eingabe2.readLine();
int sek = Integer.parseInt(eingabe);

int jaherg = sek/(tag)/365;
int wekerg = (sek%jah)/(wek);
int tagerg = (sek%wek)/(tag);
int stderg = (sek%tag)/(std);
int minerg = (sek%std)/(min);
int sekerg = (sek%min*sek1);

System.out.print("Jahre: ");
System.out.println(jaherg);
System.out.print("Wochen: ");
System.out.println(wekerg);
System.out.print("Tage: ");
System.out.println(tagerg);
System.out.print("Stunden: ");
System.out.println(stderg);
System.out.print("Minuten: ");
System.out.println(minerg);
System.out.print("Sekunden: ");
System.out.println(sekerg);


}


Vielleicht kann mir ja wer helfen? Habe ich einen Denkfehler?

LG
 

Theophilius

Grünschnabel
1. poste das ganze nochmal in
Java:
code, dann nimmt sich dir bestimmt einer an ;)
2. ich erkenne hier keinerlei klasse noch methode, ist das der konstruktor mit dem du das aufrufst?
mit was programmierst du denn? eclipse, kommandozeile, jgrasp ähnliches?
 

sha1337

Grünschnabel
Hey ich programmiere mit eclipse :)


Code:
import java.io.*;
public class zeitumrechnung {
 
	public static void main(String[] args)throws IOException
 
	{
		int sek1 = 1;
		int min = (60*sek1);
		int std = (60*min);
		int tag = (24*std);
		int wek = (7*tag);
		int jah = (365*tag);
 
		System.out.println("Sekunden: ");
		BufferedReader eingabe2 = new BufferedReader(new InputStreamReader(System.in));
		String eingabe = eingabe2.readLine();
		int sek = Integer.parseInt(eingabe);
 
		int jaherg = sek/(tag)/365;
		int wekerg = (sek%jah)/(wek);
		int tagerg = (sek%wek)/(tag);
		int stderg = (sek%tag)/(std);
		int minerg = (sek%std)/(min);
		int sekerg = (sek%min*sek1);
 
		System.out.print("Jahre: ");
		System.out.println(jaherg);
		System.out.print("Wochen: ");
		System.out.println(wekerg);
		System.out.print("Tage: ");
		System.out.println(tagerg);
		System.out.print("Stunden: ");
		System.out.println(stderg);
		System.out.print("Minuten: ");
		System.out.println(minerg);
		System.out.print("Sekunden: ");
		System.out.println(sekerg);
 
 
	}
}

Hoffe du meintest das so mit dem Code einfügen? Habe jetzt mal alles eingefügt.

LG
 

Theophilius

Grünschnabel
so hab deinen kleinen Denkfehler gefunden,

Liegt in der Rechnung der Tage. Du teilst da nur durch wochen, müsstest aber zuvor noch den rest der rechnung der jahre reinbringen, also in etwa so

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class asd {
	
	int sekunde = 1;
	int minute = (60*sekunde);
	int stunde = (60*minute);
	int tag = (24*stunde);
	int woche = (7*tag);
	int jahr = (365*tag);
	
	public asd(){
		System.out.println("Sekunden zum Umrechnen: ");
		int eingabe = 0;
		
		try {
			eingabe =Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		int jahre = eingabe/jahr;
		int wochen = (eingabe%jahr)/(woche);
		int tage = ((eingabe%jahr)%woche)/(tag); // Hier der Knackpunkt / dein Denkfehler
		int stunden = (eingabe%tag)/(stunde);
		int minuten = (eingabe%stunde)/(minute);
		int sekunden = (eingabe%minute*sekunde);

		System.out.println("Jahre: " + jahre);
		System.out.println("Wochen: " + wochen);
		System.out.println("Tage: " + tage);
		System.out.println("Stunden: " + stunden);
		System.out.println("Minuten: " + minuten);
		System.out.println("Sekunden: " + sekunden);
	}
	
	public static void main(String[] args){
		new asd();
	}
		
}

Liebe Grüße,

phil