Vollmond berechnen und ausgeben

suri

Mitglied
Hi, ich bin java Anfänger. Gerade habe ein Problem bei einer Aufgabe. Die Aufgabe ist:
Am 01.01.2021 ist der 1. Vollmondstag im Jahr 2021. Nach 29 Tage ist wieder ein Vollmond. Ausgegeben soll: welcher Monat hat 2 mal Vollmond, dann ausgeben: yahr, Monat. Das neue Jahr soll auch genau so eine Runde bearbeitet.
Ich weiß nicht wie ich anfangen soll. Vielen Dank für eure Antwort!
 

MarvinsDepression

Bekanntes Mitglied
Für die Umsetzung ist es entscheident, ob Du Datum-Hilfsklassen von JAVA benützen darfst, oder ob Du das völlig zufuß machen sollst.
Bevor Du aber irgendwas in die Tastatur hackst, mach Dir mit Stift und Papier Notizen und probiere ein bischen rum.
Wenn am 1.1.2021 Vollmond war, dann war der nächste VM am...? Und der nächste am...? ...
Falls Du OHNE Datum-Klassen arbeiten musst: Welche Informationen benötig Dein Program?
 

suri

Mitglied
Hi, Datum-Hilfsklassen habe ich noch nicht gelernt. Von daher glaube ich, dass ich alles manuell machen muss. Ich habe angefangen so zu schreiben:

public class Vollmond {

/**
* @param args
*/
public static void main(String[] args) {
int n = Integer.parseInt(args[0]); // hier soll n Argumente eingeben. Z.B: ich will 2 Monate sehen, die
// 2 mal Vollmond im Monat haben.
int jahr = 2021;
boolean istSchaltjahr;
String[] monat = {"Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli", "August", "September",
"Oktober", "November", "Dezember"};
int[] maxtagemonat = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
String[] ergebnis = new String[];

int count = 0;
int vollmondtag = 1;

// Kontrolle ob das jahr ein Schalftjahr ist. Das ist ein Schaltjahr wenn es durch 4 teilbar
// und durch 100 nicht teilbar
istSchaltjahr = (jahr % 4 == 0) && (jahr % 100 != 0);

// oder das Jahr durch 400 teilbar
istSchaltjahr = istSchaltjahr || (jahr % 400 == 0);

// wenn das Jahr ein Schaltjahr ist, hat der Monat Februar 29 Tage
if (istSchaltjahr) {
maxtagemonat[1] = maxtagemonat[1] + 1;
}


for (int i = 0; i<monat.length; i++) {
vollmondtag = vollmondtag + 29;
}

}

}

jetzt habe ich Probleme: 1. Wie kann ich zählen, welcher Monat hat 2 mal Vollmond
2. Wie mache ich das Jahr automatisch steigen wenn der Monat Dezember zu Ende ist und die Vollmondberechnung weiter geht.
Beispiel Ausgabe: java Vollmond 2
2022, Januar
2023, Oktober
 

suri

Mitglied
Für die Umsetzung ist es entscheident, ob Du Datum-Hilfsklassen von JAVA benützen darfst, oder ob Du das völlig zufuß machen sollst.
Bevor Du aber irgendwas in die Tastatur hackst, mach Dir mit Stift und Papier Notizen und probiere ein bischen rum.
Wenn am 1.1.2021 Vollmond war, dann war der nächste VM am...? Und der nächste am...? ...
Falls Du OHNE Datum-Klassen arbeiten musst: Welche Informationen benötig Dein Program?
Hi, Datum-Hilfsklassen habe ich noch nicht gelernt. Von daher glaube ich, dass ich alles manuell machen muss. Ich habe angefangen so zu schreiben:
public class Vollmond {
/**
* @param args
*/
public static void main(String[] args) {
int n = Integer.parseInt(args[0]); // hier soll n Argumente eingeben. Z.B: ich will 2 Monate sehen, die
// 2 mal Vollmond im Monat haben.
int jahr = 2022;
boolean istSchaltjahr;
String[] monat = {"Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli", "August", "September",
"Oktober", "November", "Dezember"};
int[] maxtagemonat = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
String[] ergebnis = new String[];

int count = 0;
int vollmondtag = 1;

// Kontrolle ob das jahr ein Schalftjahr ist. Das ist ein Schaltjahr wenn es durch 4 teilbar
// und durch 100 nicht teilbar
istSchaltjahr = (jahr % 4 == 0) && (jahr % 100 != 0);

// oder das Jahr durch 400 teilbar
istSchaltjahr = istSchaltjahr || (jahr % 400 == 0);

// wenn das Jahr ein Schaltjahr ist, hat der Monat Februar 29 Tage
if (istSchaltjahr) {
maxtagemonat[1] = maxtagemonat[1] + 1;
}


for (int i = 0; i<monat.length; i++) {
vollmondtag = vollmondtag + 29;
}

}
}
jetzt habe ich Probleme: 1. Wie kann ich zählen, welcher Monat hat 2 mal Vollmond
2. Wie mache ich das Jahr automatisch steigen wenn der Monat Dezember zu Ende ist und die Vollmondberechnung weiter geht.
Beispiel Ausgabe: java Vollmond 2
2022, Januar
2023, Oktober
 

MarvinsDepression

Bekanntes Mitglied
Bitte neütze die CodeTags [</>] um Code einzufügen, sonst ist das nicht gerade leserlich und kann im Detail auch falsch angezeigt werden.

Und ganz wichtig. Vermeide unbedingt, alles in die main() zu schreiben. Erstelle sinnvolle Methoden! Sonst wir es sehr unübersichtlich und unflexibel.
Fall Ihr schon gelernt habt, wie man Objekte erzeugt und nutzt, dann tue es. Die Aufgabe schreit förmlich danach.
 
Zuletzt bearbeitet:

suri

Mitglied
Bitte neütze die CodeTags [</>] um Code einzufügen, sonst ist das nicht gerade leserlich und kann im Detail auch falsch angezeigt werden.

Und ganz wichtig. Vermeide unbedingt, alles in die main() zu schreiben. Erstelle sinnvolle Methoden! Sonst wir es sehr unübersichtlich und unflexibel.
Fall Ihr schon gelernt habt, wie man Objekte erzeugt und nutzt, dann tue es. Die Aufgabe schreit förmlich danach.
Hi, so weit habe ich noch nicht gelernt. Ich bin wirklich Anfänger und diese Aufgabe ist die 2. Aufgabe. Die erste war nur mit HelloWorld auszugeben und plötzlich die 2. Aufgabe mit so viele Dinge zu erledigen. Bis jetzt habe ich nur in der main() zum Schreiben gelernt.
 

MarvinsDepression

Bekanntes Mitglied
Du wirst aber weitere Methoden benötigen. Das ist auch nicht besonders schwierig. Die main() ist ja auch eine. Solange ihr nicht objektorientiert arbeitet, müssen die Methoden dann alle static sein.
eine geeignete Methode könnte dann heißen public static boolean isLeapYear(int year) { ... }
Dann kannst Du von jeder Stelle im Programm testen, ob ein Jahr ein Schaltjahr ist (if (isLeapYear(jahr)) { ... })
Bemühe Deine Unterlagen oder das Internet. Das ist einfach elementares Wissen.
 

berndoa

Top Contributor
Was ich mal ganz primitiv machen würde:
Überlegen:
Jahr hat 365 Tage.
Der wieivielte Tag eines Jahres ist denn ein Vollmond (also einfahc mal Alles in "... Tage seit Jahresbeginn" betrachten).

DANN wenn du das hast, würde ich mir überlegen welche Vollmondtage nun in welchem Monat liegen.
Spätestens Google sagt dir welcher Moant wie viele Tage hat, für Februar würde ich von 28 tagen ausgehen und sowas wie Sdhaltjahr und sowas vorerst mal ignorieren.

natürlich ist es sinnvoll sich mal irgendwo hardzucoden (bspw. als int Array) welcher Moant welche Tageszahl hat.

Mach einfach mal, dann sieht man schon weiter :)
 

suri

Mitglied
Du wirst aber weitere Methoden benötigen. Das ist auch nicht besonders schwierig. Die main() ist ja auch eine. Solange ihr nicht objektorientiert arbeitet, müssen die Methoden dann alle static sein.
eine geeignete Methode könnte dann heißen public static boolean isLeapYear(int year) { ... }
Dann kannst Du von jeder Stelle im Programm testen, ob ein Jahr ein Schaltjahr ist (if (isLeapYear(jahr)) { ... })
Bemühe Deine Unterlagen oder das Internet. Das ist einfach elementares Wissen.
Ich werde alle diese Sachen noch lernen. Wenn es soweit ist, benutze ich gerne. Jetzt ist es noch nicht daran, dann darf ich nicht benutzen, glaube ich. Sonst denkt der Lehrer, der Held hat für mich die Aufgabe gelöst. Jetzt benutze ich nur das, was ich gelernt habe.
 

suri

Mitglied
Was ich mal ganz primitiv machen würde:
Überlegen:
Jahr hat 365 Tage.
Der wieivielte Tag eines Jahres ist denn ein Vollmond (also einfahc mal Alles in "... Tage seit Jahresbeginn" betrachten).

DANN wenn du das hast, würde ich mir überlegen welche Vollmondtage nun in welchem Monat liegen.
Spätestens Google sagt dir welcher Moant wie viele Tage hat, für Februar würde ich von 28 tagen ausgehen und sowas wie Sdhaltjahr und sowas vorerst mal ignorieren.

natürlich ist es sinnvoll sich mal irgendwo hardzucoden (bspw. als int Array) welcher Moant welche Tageszahl hat.

Mach einfach mal, dann sieht man schon weiter :)
Danke für die Antwort.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
L Pi berechnen Java Basics - Anfänger-Themen 1
CptK Term (als String) berechnen und ausgeben Java Basics - Anfänger-Themen 10
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
S Compiler-Fehler Schaltjahr berechnen Java Basics - Anfänger-Themen 5
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
R Liga Berechnen Java Basics - Anfänger-Themen 1
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
R Fussballtabellen berechnen Java Basics - Anfänger-Themen 12
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
S Negafibonacci Folge berechnen Java Basics - Anfänger-Themen 24
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
N Mit LocalDate alter berechnen Java Basics - Anfänger-Themen 3
J Laufzeit berechnen/Laufzeitanalyse Java Basics - Anfänger-Themen 2
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
A Wochentag berechnen Java Basics - Anfänger-Themen 10
Ste3et_C0st Vectoren berechnen Java Basics - Anfänger-Themen 8
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
L Wochentag berechnen Java Basics - Anfänger-Themen 5
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
V Mittelwert berechnen Java Basics - Anfänger-Themen 31
H Datentypen Tage zwischen zwei Datums berechnen Java Basics - Anfänger-Themen 4
P Quadrate berechnen Java Basics - Anfänger-Themen 3
S OOP Datumsunterschied in Tagen berechnen Java Basics - Anfänger-Themen 3
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Schaltjahre berechnen! Java Basics - Anfänger-Themen 1
A werte in einem String berechnen Java Basics - Anfänger-Themen 3
F Checksummen aus int-Array berechnen Java Basics - Anfänger-Themen 3
F Toto-Tipp-Reihen berechnen Java Basics - Anfänger-Themen 1
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
R Quersumme berechnen - Methodenproblem Java Basics - Anfänger-Themen 1
S Button "Berechnen" geht nicht Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben