Übung 2 Java 

Status
Für weitere Antworten geschlossen.

buba

Registered +
Registriert
Jan. 2007
Beiträge
33
Hey leute,

habs versucht die nächste Aufgabe selber zu lösen, habs auch fast geschafft, doch der Output entspricht nicht meinen Wünschen.
ich möchte das er zuerst sagt was für ein Tag das eingegebene Datum ist, und dannach ob es ein schaltjahr ist, doch bei mir mischt! wieso?
PHP:
import java.util.*;
public class Aufgabe5a {
public static void main (String args[]) {

int tag, monat, jahr,
jh, ja, julian_tag;


Scanner sc = new Scanner (System.in);



System.out.println("Tag: ");
tag = sc.nextInt(); //("Tag: ");
System.out.println("Monat: ");
monat = sc.nextInt();//("Monat: ");
System.out.println("Jahr: ");
jahr = sc.nextInt();//("Jahr: ");

System.out.print("Das Datum " + tag + "." + monat + "." + jahr + " ist ein ");

jh = jahr / 100; /* Jahrhundert */
ja = jahr % 100; /* Jahr im Jahrhundert */

if (monat>2) {
monat -=3;
} else {
monat += 9;
ja--;
}



if (jahr%400 == 0 || jahr%100 != 0 && jahr%4 == 0) {


System.out.println(" Das Jahr " +jahr +" ist ein Schaltjahr");
}

else
{

System.out.println(" Das Jahr " +jahr +" ist kein Schaltjahr");
}




tag = (146097*jh)/4 + (1461*ja)/4 + (153*monat+2)/5 + tag + 1721119;

switch (tag%7) {
case 0:
System.out.println("Montag");
break;
case 1:
System.out.println("Dienstag");
break;
case 2:
System.out.println("Mittwoch");
break;
case 3:
System.out.println("Donnerstag");
break;
case 4:
System.out.println("Freitag");
break;
case 5:
System.out.println("Samstag");
break;
case 6:
System.out.println("Sonntag");
break;

}
}
}

Auser dem weiss jemand wie ich das ganze dann in ne endlos shlaufe bringe?
so das er immmer wieder das gleiche fragt, als ob ich den code immer neustarten würde, doch eben automatisch. Mit der funktion
do...... while schlaufe und
Verwendung von true für unendlichen loop.


Vielen Herzlichen Dank
 
Bin grad dabei .. Aber ich brauch dazu das womit man berechnet was für ein Tag ein bestimmtes Datum war /ist .


Also hab da mal nen bissi dran gescharaubt ..
müsstest jz nurnoch dafür sorgen das die Variable "Tag" kein Integer mehr ist .. bzw das sie als ganzzahl angezeicht wird sonst wird aus 27.12.1988 das hier ==> 2447615.12.1988
Oder das hat was mit deinen Rechnungen zu tun die du gemacht hast und die ich net ganz raffe ^^ also wenn du mir sagst wie man den Tag bestimmt dann kann ich dir helfen ^^ wenn nicht musst du damit zurecht kommen :

PHP:
import javax.swing.*;
public class Aufgabe5a {
/* Autor:Scarecraft */
public static void main (String args[]) {
int 
tag;
int
monat;
int
jahr;
int
jh;
int
ja;
int
monat2;

//Eingabe
String t=JOptionPane.showInputDialog("Tag:");
tag=Integer.parseInt(t);
String m=JOptionPane.showInputDialog("Monat:");
monat=Integer.parseInt(m);
String j=JOptionPane.showInputDialog("Jahr:");
jahr=Integer.parseInt(j);
//Eingabe

monat2=monat;
jh = jahr / 100; /* Jahrhundert */
ja = jahr % 100; /* Jahr im Jahrhundert */

if (monat>2) {
monat2 -=3;
} else {
monat2 += 9;
ja--;
} 

tag = (146097*jh)/4 + (1461*ja)/4 + (153*monat+2)/5 + tag + 1721119;

switch (tag%7) {
case 0:
JOptionPane.showMessageDialog(null,"Dieser Tag war ein Montag");
break;
case 1:
JOptionPane.showMessageDialog(null,"Dieser Tag war ein Dienstag");
break;
case 2:
JOptionPane.showMessageDialog(null,"Dieser Tag war ein Mittwoch");
break;
case 3:
JOptionPane.showMessageDialog(null,"Dieser Tag war ein Donnerstag");
break;
case 4:
JOptionPane.showMessageDialog(null,"Dieser Tag war ein Freitag");
break;
case 5:
JOptionPane.showMessageDialog(null,"Dieser Tag war ein Sammstag");
break;
case 6:
JOptionPane.showMessageDialog(null,"Dieser Tag war ein Sonnstag");
break;
}

if (jahr%400 == 0 || jahr%100 != 0 && jahr%4 == 0) {
JOptionPane.showMessageDialog(null,"Der"+ tag +"."+ monat +"."+ jahr +"ist ein Schaltjahr");
} else {
JOptionPane.showMessageDialog(null,"Das Jahr"+jahr+" ist kein Schaltjahr!");
}
}

}
 
Hey Scarecraft, you are great!!!

Dank deinem Beitrag hab ich gemerkt das bei meinem script ein { gefehlt hat. Nun läuft alles super, sooo macht lernen spass und ist nun auch für mich klar.

Vielen dank.

Doch ein problem bleibt noch, wie setze ich das ganze in ne endlooooos schleife??? Tipp vom Buch:
do...... while schlaufe und
Verwendung von true für unendlichen loop.

Danke danke

:tata: :blink:
 
do{
.....
}while(true)

Für ne endlosschleife reicht aber auch eine einfache whileschleife.
Die do while macht nur Sinn, wenn es mindestens einmal durchlaufen werden soll und dann jedesmal eine Abfrage kommt ob noch weiter durchlaufen werden soll.
Hierzu setzt man dann z.b. eine Funktion ein.

Ungefähr so
do{
.....
}while(fortsetzen())

und in der funktion frägst du dann den Nutzer ob er weitermachen will oder nicht, und je nachdem gibst du true oder false zurück
 
stelzi
do{
.....
}while(true)

Ist Richtig

Vielen Dank Stelzi, war soooooooo nah dran, doch ohne dich wärs need gangen. Danke
:D :tata: :)

muss man was schreiben (close) wenn tread fertig? oder gibts da sowas need?
 
buba schrieb:
stelzi

Ist Richtig

Vielen Dank Stelzi, war soooooooo nah dran, doch ohne dich wärs need gangen. Danke
:D :tata: :)

muss man was schreiben (close) wenn tread fertig? oder gibts da sowas need?

Du must auf bearbeiten und als Präfix oder so close angeben ^^ glaub ich
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten