mariusbopp
Bekanntes Mitglied
anscheinend ja nicht.
hast du mal lust über meinen code drüber zu gucken dann schick ich ihn dir gerne mal per mail... oder jemand anderes?
anscheinend ja nicht.
import java.util.Scanner;
public class Kalender2 {
public static void main (String [] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Bitte geben Sie das Jahr ein:");
int jahr = sc.nextInt();
int y = jahr % 100 ,
c = jahr / 100 ,
max = 31;
for (int m=1 ; m<=12; m++){
String Mon = null;
switch (m) {
case 1:
m = 11 ;
Mon = "Januar";
max = 31;
break;
case 2:
m = 12 ;
Mon = "Februar";
if (jahr % 4 == 0)
max = 29;
else
max = 28;
break;
case 3:
m = 1 ;
Mon = "Maerz";
max = 31;
break;
case 4:
m = 2 ;
Mon = "April";
max = 30;
break;
case 5:
m = 3 ;
Mon = "Mai";
max = 31;
break;
case 6:
m = 4 ;
Mon = "Juni";
max = 30;
break;
case 7:
m = 5 ;
Mon = "Juli";
max = 31;
break;
case 8:
m = 6 ;
Mon = "August";
max = 31;
break;
case 9:
m = 7 ;
Mon = "September";
max = 30;
break;
case 10:
m = 8 ;
Mon = "Oktober";
max = 31;
break;
case 11:
m = 9 ;
Mon = "November";
max = 30;
break;
case 12:
m = 10 ;
Mon = "Dezember";
max = 31;
break;
}
System.out.println("");
System.out.println(" "+Mon+" "+jahr);
System.out.println("");
System.out.println("MO DI MI DO FR SA SO");
if (m == 11 || m == 12)
y = y-1 ;
if (y < 0)
y = 99;
if (jahr >= 1600 && jahr % 400 ==0)
c = c-1 ;
int w =(((1+(int)(2.6*m-0.2)+y+(int)(y/4)+(int)(c/4)-2*c)%7)+7)%7;
for(int i = 0;i < (w+6)%7 ;i++){ //wir rücken richtig ein, für den ersten
System.out.print(" ");
}
int weekDay = w;
for(int d = 1; d <= max; d++){
if(d < 10)
System.out.print("0");
System.out.print(d+" ");//einfach tag ausgeben
if(weekDay %7 ==0) //am sonntag machen wir einen zeilenumbruch
System.out.println("");
weekDay++;
}
}
}
}
public static void main() {
// scanner nutzen und ausgabeart/jahr/monat abfragen
if (monat) {
printEinMoant(monat, jahr);
}
else {
printEinJahr(jahr);
}
}
[/code]
muss ich dann die namen der methoden abfragen oder wie mache ich das ? wie hat soetwas auszusehen ?
public void printEinMonat(int monat, int jahr) {
// hier alles aus deiner alten main rein, außer den scanner
}
public void printEinJahr(int jahr) {
for (i <= 12) {
printEinMonat(i,jahr);
}
}
public static void main() {
Scanner sc = new Scanner(System.in);
System.out.println("ein jahr (j) oder einen monat (m) ausgeben?");
char entscheidung = sc.nextChar();
System.out.print("Bitte geben Sie den Monat ein:");
int m = sc.nextInt();
System.out.print("Bitte geben Sie das Jahr ein:");
int jahr = sc.nextInt();
if (entscheidung == 'm') {
printEinMoant(m, jahr);
}
else if (entscheidung == 'j') {
printEinJahr(jahr);
}
public void printEinMonat(int m, int jahr) {
System.out.print("Bitte geben Sie den Monat ein:");
m = sc.nextInt();
System.out.print("Bitte geben Sie das Jahr ein:");
jahr = sc.nextInt();
int y = jahr % 100 ,
c = jahr / 100 ;
String Mon = "falscher Eingabewert" ,
Tag = "falscher Eingabewert" ;
int max = 31 ;
switch (m) {
case 1:
m = 11 ;
Mon = "Januar";
max = 31;
break;
case 2:
m = 12 ;
Mon = "Februar";
if (jahr % 4 == 0)
max = 29;
else
max = 28;
break;
case 3:
m = 1 ;
Mon = "Maerz";
max = 31;
break;
case 4:
m = 2 ;
Mon = "April";
max = 30;
break;
case 5:
m = 3 ;
Mon = "Mai";
max = 31;
break;
case 6:
m = 4 ;
Mon = "Juni";
max = 30;
break;
case 7:
m = 5 ;
Mon = "Juli";
max = 31;
break;
case 8:
m = 6 ;
Mon = "August";
max = 31;
break;
case 9:
m = 7 ;
Mon = "September";
max = 30;
break;
case 10:
m = 8 ;
Mon = "Oktober";
max = 31;
break;
case 11:
m = 9 ;
Mon = "November";
max = 30;
break;
case 12:
m = 10 ;
Mon = "Dezember";
max = 31;
break;
}
if (m == 11 || m == 12)
y = y-1 ;
if (y < 0)
y = 99;
if (jahr >= 1600 && jahr % 400 ==0)
c = c-1 ;
int w =(((1+(int)(2.6*m-0.2)+y+(int)(y/4)+(int)(c/4)-2*c)%7)+7)%7;
System.out.println("");
System.out.println(" "+Mon+" "+jahr);
System.out.println("");
System.out.println("MO DI MI DO FR SA SO");
for(int i = 0;i < (w+6)%7 ;i++){ //wir rücken richtig ein, für den ersten
System.out.print(" ");
}
int weekDay = w;
for(int d = 1; d <= max; d++){ //wir iterieren über die tage
if(d < 10)
System.out.print("0");
System.out.print(d+" ");//einfach tag ausgeben
if(weekDay %7 ==0) //am sonntag machen wir einen zeilenumbruch
System.out.println("");
weekDay++;
}
}
public void printEinJahr(int jahr) {
for (i <= 12) {
printEinMonat(i,jahr);
}
}
public static void main() {
Scanner sc = new Scanner(System.in);
System.out.println("ein jahr (j) oder einen monat (m) ausgeben?");
char entscheidung = sc.nextChar();
System.out.print("Bitte geben Sie den Monat ein:");
int m = sc.nextInt();
System.out.print("Bitte geben Sie das Jahr ein:");
int jahr = sc.nextInt();
if (entscheidung == 'm') {
printEinMoant(m, jahr);
}
else if (entscheidung == 'j') {
printEinJahr(jahr);
}
Java:public void printEinMonat(int monat, int jahr) { // hier alles aus deiner alten main rein, außer den scanner }
habe halt nur irgendwie versucht die tipps von bone zu befolgen..^^
keine ausrede, du beschäftigst dich schon seit samstag mit dem thema..absoluter newb =(
import java.util.Scanner;
public class Kalender6 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("Bitte den Monat eingeben: ");
int m = sc.nextInt();
System.out.println("Bitte das Jahr eingeben: ");
int jahr = sc.nextInt();
int c = (jahr/100);
int y = jahr%100;
int w;
int d = 1;
if(jahr<=1582 && m<=10){
System.out.println("Ungültiges Eingabedatum");
System.exit(0);
}
if(jahr%4==0 && m==2 && jahr%100!=0|| jahr%400==0);
if(m<1){
System.out.println("Ungültiges Eingabedatum");
System.exit(0);
}
if(m>12){
System.out.println("Ungültiges Eingabedatum");
System.exit(0);
}
if(m==1||m==2)
y=y-1;
if(y<0)
y=99;
if(jahr%400==0 && jahr >1600 && m==1 || m==2)
c= c-1;
switch (m){ //Initialisierung der neuen Werte für die Monate
case 1: m = 11;
break;
case 2: m = 12;
break;
case 3: m = 1;
break;
case 4: m = 2;
break;
case 5: m = 3;
break;
case 6: m = 4;
break;
case 7: m = 5;
break;
case 8: m = 6;
break;
case 9: m = 7;
break;
case 10: m = 8;
break;
case 11: m = 9;
break;
case 12: m = 10;
break;
}
//Gaußsche Wochenberechnungsformel
w = ((1+(int)(2.6*m-0.2)+y+(int)(y/4)+(int)(c/4)-2*c) % 7 +7) % 7;
String m2 = "";
// Zuordnung der Werte für die Monate
switch (m){
case 11: m2 = "Januar";
break;
case 12: m2 = "Februar";
break;
case 1: m2 = "März";
break;
case 2: m2 = "April";
break;
case 3: m2 = "Mai";
break;
case 4: m2 = "Juni";
break;
case 5: m2 = "Juli";
break;
case 6: m2 = "August";
break;
case 7: m2 = "September";
break;
case 8: m2 = "Oktober";
break;
case 9: m2 = "November";
break;
case 10: m2 = "Dezember";
break;
}
System.out.println("");
System.out.println(" "+m2+" "+jahr);
System.out.println("");
System.out.println("MO DI MI DO FR SA SO");
for(int i = 0;i < (w+6)%7 ;i++){ //wir rücken richtig ein, für den ersten
System.out.print(" ");
}
int weekDay = w;
for(d = 1; d <= 31 ; d++){ //wir iterieren über die tage
if(d < 10)
System.out.print("0");
System.out.print(d+" ");//einfach tag ausgeben
if(weekDay %7 ==0) //am sonntag machen wir einen zeilenumbruch
System.out.println("");
weekDay++;
}
}
}
switch (m){
case 1: m = 11;
...
switch (m){
case 11: m2 = "Januar";
vielleicht so wies deine vorredner schon gemacht haben... du definerst einfach eine variable für die maximalen tage und setzt diese dann im switch..Mein Problem ist momentan, dass ich kein Schimmer hab wie ich meinen Monaten die maximale anzahl an Tagen zuordnen soll. Habe die hier gezeigten Varianten schon versucht aber es ergibt immer Fehler die ich auch nicht beheben kann. Wenn ich sie behebe, tauchen neue fehler
genauer arbeiten und nicht irgenwas hinmurksen!Wenn ich sie behebe, tauchen neue fehler auf :/
naja die 30 Minuten sich das beizugringen würd ich mir nicht sparen...Da ich auch nicht sonderlich viel Erfahrung habe mit Methoden, möchte ich diese erst einmal Aussen vor lassen.
import java.util.Scanner;
public class Kalender6 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("Bitte den Monat eingeben: ");
int monat = sc.nextInt();
System.out.println("Bitte das Jahr eingeben: ");
int jahr = sc.nextInt();
int c = (jahr/100);
int y = jahr%100;
int w;
int d = 1;
int monatsName;
if(jahr<=1582 && monat<=10){
System.out.println("Ungültiges Eingabedatum");
System.exit(0);
}
if(jahr%4==0 && monat==2 && jahr%100!=0|| jahr%400==0){
}
if(monat<1){
System.out.println("Ungültiges Eingabedatum");
System.exit(0);
}
if(monat>12){
System.out.println("Ungültiges Eingabedatum");
System.exit(0);
}
if(monat==1||monat==2)
y=y-1;
if(y<0)
y=99;
if(jahr%400==0 && jahr >1600 && monat==1 || monat==2)
c= c-1;
int max = 31;
switch (monat){ //Initialisierung der neuen Werte für die Monate
case 1:
monat = 11;
monatsName = "Januar";
max = 31;
break;
case 2:
monat = 12;
monatsName = "Februar";
max = 28;
break;
case 3:
monat = 1;
monatsName = "Maerz";
max = 31;
break;
case 4:
monat = 2;
monatsName = "April";
max = 30;
break;
case 5:
monat = 3;
monatsName = "Mai";
max = 31;
break;
case 6:
monat = 4;
monatsName = "Juni";
max = 30;
break;
case 7:
monat = 5;
monatsName = "Juli";
max = 31;
break;
case 8:
monat = 6;
monatsName = "August";
max = 31;
break;
case 9:
monat = 7;
monatsName = "September";
max = 30;
break;
case 10:
monat = 8;
monatsName = "Oktober";
max = 31;
break;
case 11:
monat = 9;
monatsName = "November";
max = 30;
break;
case 12:
monat = 10;
monatsName = "Dezember";
max = 31;
break;
}
//Gaußsche Wochenberechnungsformel
w = ((1+(int)(2.6*monat-0.2)+y+(y/4)+(c/4)-2*c) % 7 +7) % 7;
System.out.println("");
System.out.println(" "+monatsName+" "+jahr);
System.out.println("");
System.out.println("MO DI MI DO FR SA SO");
for(int i = 0;i < (w+6)%7 ;i++){ //wir rücken richtig ein, für den ersten
System.out.print(" ");
}
int weekDay = w;
for(d = 1; d <= 31 ; d++){ //wir iterieren über die tage
if(d < 10)
System.out.print("0");
System.out.print(d+" ");//einfach tag ausgeben
if(weekDay %7 ==0) //am sonntag machen wir einen zeilenumbruch
System.out.println("");
weekDay++;
}
}
}
import java.util.Scanner;
public class Kalenderneu {
public static void main (String [] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Bitte geben Sie den Monat ein:");
int m = sc.nextInt();
System.out.print("Bitte geben Sie das Jahr ein:");
int jahr = sc.nextInt();
int y = jahr % 100 ;
int c = jahr / 100 ;
int max = 31 ;
if(jahr<=1582 && m<=10){
System.out.println("Bitte geben Sie mindestens das Jahr 1582 ein.");
System.exit(0);
}
String Mon = "" ;
switch (m) {
case 1:
m = 11 ;
Mon = "Januar";
max = 31;
break;
case 2:
m = 12 ;
Mon = "Februar";
if (jahr % 4 == 0 && m==2 && jahr%100!=0 || jahr%400==0)
max = 29;
else
max = 28;
break;
case 3:
m = 1 ;
Mon = "Maerz";
max = 31;
break;
case 4:
m = 2 ;
Mon = "April";
max = 30;
break;
case 5:
m = 3 ;
Mon = "Mai";
max = 31;
break;
case 6:
m = 4 ;
Mon = "Juni";
max = 30;
break;
case 7:
m = 5 ;
Mon = "Juli";
max = 31;
break;
case 8:
m = 6 ;
Mon = "August";
max = 31;
break;
case 9:
m = 7 ;
Mon = "September";
max = 30;
break;
case 10:
m = 8 ;
Mon = "Oktober";
max = 31;
break;
case 11:
m = 9 ;
Mon = "November";
max = 30;
break;
case 12:
m = 10 ;
Mon = "Dezember";
max = 31;
break;
}
if (m == 11 || m == 12) {
y = y-1 ;
}
if (y < 0) {
y = 99;
}
if (jahr >= 1600 && jahr % 400 ==0) {
c = c-1 ;
}
int w =(((1+(int)(2.6*m-0.2)+y+(y/4)+(c/4)-2*c)%7)+7)%7;
System.out.println("");
System.out.println(" "+Mon+" "+jahr);
System.out.println("");
System.out.println("MO DI MI DO FR SA SO");
for(int i = 0;i < (w+6)%7 ;i++){ // Einrücken des ersten Wochentags
System.out.print(" ");
}
int wochentag = w;
for(int d = 1; d <= max; d++){ // Hochzählung der Tage
if(d < 10)
System.out.print("0");
System.out.print(d+" "); // Ausgabe des Tages
if(wochentag %7 ==0) // Zeilenumbruch für den Snnntag
System.out.println("");
wochentag++;
}
}
}
Und ich habe mich immer Angst gehabt, dass ein Informatikstudium schwer ist :/
Sorry für den Spam.