Jahre, Monate, Tage, Stunden, Minuten

teufelsfrucht

Neues Mitglied
Stehe momentan auf dem Schlauch was ne Aufgabe angeht und wollte euch um Hilfe fragen.

Zu realisieren ist ein Programm, welches ausgehend von einem Anfangsdatum (z.B. 01.01.1970) mittels einer Methode vorruecke(int min, int h, int d, int m, int y) entsprechende Wert "draufaddieren" soll und letztenendes ein gültiges Ergebnis liefern soll. Schaltjahre werden dabei ignoriert, wir gehen davon aus das der Februar 28 Tage hat, etc.

Klasse Zeit.java

Java:
public class Zeit {

    public static int stunde = 0;
    public static int minute = 0;
    public static int tag = 1;
    public static int monat = 1;
    public static int jahr = 1970;

//gibt zureuck wie viele Tage ensprenden Monat hat
    public static int tageInMonat(int m) {
        if (m == 2) {
            return 28;
        }
        if ((m <= 7) && (m % 2 == 1)) {
            return 31;
        } else {
            if ((m >= 8) && (m % 2 == 0)) {
                return 30;
            }
        }
        return 0;
    }

    public static class Datum {
        public static int stunde() {
            return stunde;
        }

        public static void setStunde(int h) {
            stunde = h;
        }

        public static int minute() {
            return minute;
        }

        public static void setMinute(int mi) {
            minute = mi;
        }

        public static int tag() {
            return tag;
        }

        public static void setTag(int t) {
            tag = t;
        }

        public static int monat() {
            return monat;
        }

        public static void setMonat(int mo) {
            monat = mo;
        }

        public static int jahr() {
            return jahr;
        }

        public static void setJahr(int j) {
            jahr = j;
        }

        public static void vorruecken(int jahr, int monat, int tag, int stunde, int minute) {
          
            if((minute() + minute) <= 59){
                setMinute((minute() + minute));
            }
            if((minute() + minute) > 59){
                setMinute((minute() + minute) % 60);
                setStunde(stunde()+1);
            }
            if((stunde() + stunde) <= 24){
                setStunde(stunde() + stunde);
            }
            if((stunde() + stunde) > 24){
                setStunde((stunde() + stunde) % 24);
                setTag(tag()+1);
            }
            /*
            if((tag() + tag) <= 31){
                setTag(tag() + tag);
            }
            if((tag() + tag) > 31){
                setTag((tag() + tag) % 31);
                setMonat(monat() +1);
            }
          
            if((monat() + monat) <= 12){
                setMonat(monat() + monat);
            }
          
            if((monat() + monat) > 12){
                setMonat((monat() + monat) % 12);
                setJahr(jahr()+1);
            }
          
            setJahr(jahr() + jahr);
            }
        */
        }
    }
    }


TestZeit.java

Java:
public  class TestZeit {
    public static void main(String[] args) {
      
        // year, month, day, hour, min
      
        System.out.println("Minute(n):\t" + Zeit.minute);
        System.out.println("Stunde(n):\t" + Zeit.stunde);
        System.out.println("Tag(e): \t" + Zeit.tag);
        System.out.println("Monat(e):\t" + Zeit.monat);
        System.out.println("Jahr(e):\t" + Zeit.jahr);
      
        Zeit.Datum.vorruecken(5, 4, 4, 0, 59);
      
        System.out.println("\nMinute(n):\t" + Zeit.minute);
        System.out.println("Stunde(n):\t" + Zeit.stunde);
        System.out.println("Tag(e): \t" + Zeit.tag);
        System.out.println("Monat(e):\t" + Zeit.monat);
        System.out.println("Jahr(e):\t" + Zeit.jahr);
    }
}

Glaube das ich auf dem richtigen Weg bin, jedoch komme ich nach meinem jetzigen Verständnis auf keinen grünen Zweig.

Würde mich über Antworten freuen!

Gruß teufelsfrucht
 
Zuletzt bearbeitet von einem Moderator:

klauskarambulut

Bekanntes Mitglied
Das ist ja klar das das nicht funktionieren kann.

Angenommen eine Minute vor Neujahr wird das vorrücken mit 3 Minuten aufgerufen, dann ändern sich Minute, Stunde, Tag, Monat und Jahr!

Das bildet der Code so nicht ab.

Schritt eins ist erstmal den Ganzen Bullshit löschen.
Also alles static ausser das der main-Methode löschen!
Als nächstes die setMethoden löschen!
Dann den kompletten Inhalt von vorrücken(...) entfernen.

So jetzt legen wir Vernünftige Methoden an und nicht den setBullshit!

Java:
public void incrementMinute(int minute) {
  int newMinutes = this.minute + minute;
  if(newMinutes > 59) {
    incrementHour(newMinute / 60);
  }
  this.minute = newMinute % 60;
}

public void incrementHour(int hour) {
  int newHour = this.hour + hour;
  if(newHour > 23) {
    incrementDay(newHour / 24);
  }
  this.hour = newHour % 24;
}

Muster ist erkennbar? Tage Monate Jahre sollten wohl selbständig möglich sein, ansonsten ist wohl eher Kühe melken angesagt.

Code:
vorrücken(...blablabla...) {
  incrementMinute(minute);
  incrementHour(hour);
  incrementDay(day);
  //  ... Muster erkennbar?
}

Ansonsten gibbet ja noch massig Lektüre die man Durchwälzen kann, bevor man dann losprogrammiert.
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T tage in monate und jahre Java Basics - Anfänger-Themen 9
N Tage in Jahre, Monate umrechnen Java Basics - Anfänger-Themen 1
B Errechnen(Jahre Monate Tage)von einem Datum zu einem anderen Java Basics - Anfänger-Themen 3
DStrohma Millisekunden umwandeln in Jahre, Monate, Tage, Stunden Java Basics - Anfänger-Themen 5
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
M Monat der letzen 12 Monate ermitteln Java Basics - Anfänger-Themen 8
D 3 Monate addieren Java Basics - Anfänger-Themen 10
A SimpleDateFormat und monate 0 akzeptieren Java Basics - Anfänger-Themen 27
S Stunden/Tage Countdown Java Basics - Anfänger-Themen 9
sserio Gregorianischer Kalender und dessen Tage. Java Basics - Anfänger-Themen 14
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
M Rekursion Tage Ansteckung gesamte Bevölkerung Java Basics - Anfänger-Themen 15
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
M Wochentag ermittel und ggf tage abziehen Java Basics - Anfänger-Themen 4
Bluedaishi Einen Betrag X auf X Tage verteilen Java Basics - Anfänger-Themen 14
H Datentypen Tage zwischen zwei Datums berechnen Java Basics - Anfänger-Themen 4
P Wieviele Tage seit dem Datum vergangen sind Java Basics - Anfänger-Themen 5
S Erste Schritte Tage zwischen 2 Daten berechnen Java Basics - Anfänger-Themen 6
F Für Abgabe vor Feiertagen 3 Tage für Abholung hinzuaddieren Java Basics - Anfänger-Themen 19
S Ein Jahr hat 363,7 Tage ? Java Basics - Anfänger-Themen 2
S Methoden Tage zwischen 2 Daten Java Basics - Anfänger-Themen 19
P System - Tage erkennen ( System Time ?) Java Basics - Anfänger-Themen 3
G maximale Anzahl der Tage im Monat Java Basics - Anfänger-Themen 18
R Tage subtrahieren von einem Date() Java Basics - Anfänger-Themen 6
A GregorianCalendar heute + X Tage Java Basics - Anfänger-Themen 11
S Tage aus zwei Datumsangaben berechnen Java Basics - Anfänger-Themen 3
T Tage Zahlen zuordnen Java Basics - Anfänger-Themen 24
H Dates "Tage" auf gleichheit prüfen? Java Basics - Anfänger-Themen 4
H Anzahl der Tage von Monat ausgeben Java Basics - Anfänger-Themen 7
A Verständnisfrage Sekunden/Tage Umrechnung Java Basics - Anfänger-Themen 3
I Tage ermitteln Java Basics - Anfänger-Themen 4
G Altersberechnung falsch auf 1-2 Tage Java Basics - Anfänger-Themen 3
G Differenz in Tage Java Basics - Anfänger-Themen 3
T Bestimmte Tage ausschließen Java Basics - Anfänger-Themen 6
T Datum+ 100 Tage Java Basics - Anfänger-Themen 23
M wieviele Tage der Monat X hat Java Basics - Anfänger-Themen 2
S zu einem Datum Tage addieren Java Basics - Anfänger-Themen 2
W Tage im Monat Java Basics - Anfänger-Themen 3
S Calendar.set Time, Ermittlung der Anzahl Tage fehlerhaft Java Basics - Anfänger-Themen 9
X 14-Tage Testversion erstellen? Java Basics - Anfänger-Themen 15
U tage ausrechnen Java Basics - Anfänger-Themen 4
G HILFE!!! JEDER MONAT HAT 31 TAGE Java Basics - Anfänger-Themen 2
J Datum, Tage herausfinden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben