Kalender

MacMurdock

Aktives Mitglied
Hallo ich habe die Aufgabe einen Kalender zu entwickeln.
Man muss dem kalender ein datum geben können, dieses datum soll dann ausgegeben werden und nachträglich vom User verändert werden können.
Ansich sollte das ja keine alzu komplizierte sach sein ich weis nur nicht wie man 3 Werte ausgeben kann mit einem Wert weiss ich ja wies geht aber den tag,monat un das jahr gleichzeitig auszugeben überfordert meine kenntnisse dann doch...
ich poste mal den code den ich bisher geschrieben habe :


Java:
public class Datum
{
    private int tag;    // der Tag des aktuellen Datums
    private int monat;  // der Monat des aktuellen Datums
    private int jahr;   // das Jahr des aktuellen Datums

    /**
     * Konstruktor für Objekte der Klasse Jahreszeiten
     */
    public Datum(int derTag, int derMonat, int dasJahr)
    {
        tag = 17;
        monat = 11;
        jahr = 2010;
 
    }
    
    /**
     * Ermöglicht, das Datum auf einen neuen Wert zu setzen.
     */
    public void setzeDatum(int derTag, int derMonat, int dasJahr)
    {
               / Setzt Tag, Monat, Jahr auf einen neuen Wert. 
    }

    /**
     * Gibt das aktuelle Datum als Zeichenkette der Form 'Tag.Monat.Jahr'
     * zurück.
     */
    public String gibDatum() 
    {

    }
 
G

Gast2

Gast
Ausgeben:
Java:
System.out.println(tag + "." + monat + "." + jahr);

Zurückgeben (deine Methode hat ja String als rückgabe:
Java:
return tag + "." + monat + "." + jahr;
 

MacMurdock

Aktives Mitglied
Ich soll jetzt noch zusätzlich eine Methode entwickeln, die true zurückgubt wenn das aktuelle datum im kalendarischen Sommer (21.06-22.09) liegt. Leider weiss ich nicht wie man per booleschen operator den tag in einem bestimmten monat überprüft.
danke im Vorraus!
 
S

SlaterB

Gast
du musst auch nicht prüfen, ob ein Tag in einem bestimmten Monat liegt sondern inkrementell kombinieren

if ((monat = x) oder (monat = y und tag > z))
 

XHelp

Top Contributor
Ist das die gleiche Aufgabe, wo du Anzahl der Tage seit 1900 berechnen musst?
Anzahl der Tage seit 01.01 vom Datum berechnen. Anzahl der Tage seit 01.01 vom 21.06 und 22.09 berechnen. Dein Datum muss dazwischen liegen.
 
S

SlaterB

Gast
mehr als
> if ((monat = x) oder (monat = y und tag > z))
kann man nun nicht vorsagen, die Variablen sind ja schon richtiger Code von dir, musst nur noch x,y und z belegen bzw. mehr ähnliche Blöcke in das if einfügen
 

XHelp

Top Contributor
Ne die methode soll nur true ausgeben, wenn das eingegebene Datum im kalendarischen Sommer liegt
macht sie auch, wenn es dazwischen liegt.

mehr als
> if ((monat = x) oder (monat = y und tag > z))
kann man nun nicht vorsagen, die Variablen sind ja schon richtiger Code von dir, musst nur noch x,y und z belegen bzw. mehr ähnliche Blöcke in das if einfügen

Bei 4 Monaten hat man aber eine große Abfrage :)
 

MacMurdock

Aktives Mitglied
Ok, danke für die Hilfe habs folgendermassen gelöst:

Java:
public boolean istKalendarischerSommer()
      {
          if ((6 == monat && 21 <= tag) || 7 == monat || 8 == monat || (9 == monat && 22 >= tag))
            return(true);
            
          else return(false);
      }
 
S

SlaterB

Gast
@XHelp weil alle Monate einzeln abzufragen sind? < und > sind ja nicht verboten ;)
edit: bzw. die Lösung geht doch

gekürzt:
Java:
public boolean istKalendarischerSommer()
      {
          return ((6 == monat && 21 <= tag) || 7 == monat || 8 == monat || (9 == monat && 22 >= tag));
      }

edit:
richtig ist es noch nicht unbedingt, testen mit Daten vor und nach den Grenzen, bein Beispiel-Code war nicht zwingendes Gerüst
 
Zuletzt bearbeitet von einem Moderator:

MacMurdock

Aktives Mitglied
Ich häng mal wieder an einer Aufgabe...
"Ergänzen Sie eine Methode braucheWinterreifen (boolean habeWinterreifen), die true
zurückgibt, wenn das aktuelle Datum im Winter liegt und für habeWinterreifen der Wert
false übergeben wird. Das Ergebnis soll nur unter Verwendung eines booleschen Ausdrucks
ermittelt werden."


Java:
 public boolean braucheWinterreifen(boolean habeWinterreifen)
      {
          if ((12 == monat && 22 <= tag) || 1 == monat || 2 == monat || (3 == monat && 20 >= tag) && habeWinterreifen == false)
             return(true);
             
          else return(false);
      }

So schauts bei mir aus nur leider wird auch true ausgegeben, wenn man für habeWinterreifen true eingibt.
Wo liegt da der Fehler?
 

XHelp

Top Contributor
Versuche es eher mit:
[JAVA=3]
if (((12 == monat && 22 > tag) || 1 == monat || 2 == monat || (3 == monat && 20 < tag)) && habeWinterreifen == false)
[/code]
 
S

SlaterB

Gast
mehr klammern!

was
a || b || c && reifen
bedeutet, kann man doch gar nicht genau wissen, vielleicht
a || b || (c && reifen)

du willst aber
(a || b || c) && reifen
also setze Klammern

immer klammern, klammern klammern!

------

wie oben geschrieben sind deine Zeiträume im Sommer genau wie hier im Winter falsch,
den 1. Dezember zählst du zum Winter dazu, den 31. Dezember dagegen nicht,
immer testen, testen, testen, glein nach dem Klammern

-----

Kurzform für dein unnötiges if/else wäre wiederum

return (a || b || c) && (reifen == false)
bzw.
return (a || b || c) && !reifen;

oder viele einzelne ifs, dann weniger komplizierte Code-Zeilen,
z.B. könntest du gleich am Anfang

if (reifen) {
return false;
}
schreiben, dann musst du dich danach nicht mehr um reifen kümmern,


> Das Ergebnis soll nur unter Verwendung eines booleschen Ausdrucks
ermittelt werden.

klingt aber eher nach der Variante ohne jedes if/else
 

MacMurdock

Aktives Mitglied
So funktionierts jetzt

Java:
 public boolean braucheWinterreifen(boolean habeWinterreifen)
      {
          if (((12 == monat && 22 <= tag) || 1 == monat || 2 == monat || (3 == monat && 20 >= tag)) && (habeWinterreifen == false)) 
             return(true);
             
          else return(false);
      }

Danke für den Tipp mit den Klammern!
 

tfa

Top Contributor
Könnte man noch vereinfachen:

Java:
 public boolean braucheWinterreifen(boolean habeWinterreifen)  {
          return ((12 == monat && 22 <= tag) || monat <=2 || (3 == monat && 20 >= tag)) && !habeWinterreifen; 
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
F MS365 Kalender lesen Java Basics - Anfänger-Themen 5
sserio Gregorianischer Kalender und dessen Tage. Java Basics - Anfänger-Themen 14
T simpler Kalender Java Basics - Anfänger-Themen 10
G Kalender Jahreszahlen Java Basics - Anfänger-Themen 6
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
J Gerorianischer Kalender wechselt am Freitag die Woche Warum Java Basics - Anfänger-Themen 2
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
S Hinweis zu Fehler im Kalender-Code - Aufgabe 5.3 aus Grundkurs Programmieren in Java 7. Auflage Java Basics - Anfänger-Themen 4
I c++ sexagesimal kalender Java Basics - Anfänger-Themen 5
I ical - Datei auf Server ablegen und Kalender abbonieren Java Basics - Anfänger-Themen 0
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
U Neu Julianischer Kalender Java Basics - Anfänger-Themen 2
T Kalender irrt sich Java Basics - Anfänger-Themen 8
M Kalender reloaded Java Basics - Anfänger-Themen 7
L Kalender Java Frame Java Basics - Anfänger-Themen 7
M Kalender mit Terminen Java Basics - Anfänger-Themen 24
F Problem mit selbstprogrammierten Kalender (als Übung) Java Basics - Anfänger-Themen 4
J Arrays (Kalender) Fehler im Programm Java Basics - Anfänger-Themen 2
P Date oder Kalender? Was soll man verwenden? Java Basics - Anfänger-Themen 2
K Erste Schritte Kalender selber erstellen? Java Basics - Anfänger-Themen 3
A JKomponente für Kalender Java Basics - Anfänger-Themen 5
R Kalender speichert keine Zeit Java Basics - Anfänger-Themen 2
L einfachen kalender Programmieren HA! Java Basics - Anfänger-Themen 76
E Methoden zusammenfassen/Kalender erstellen Java Basics - Anfänger-Themen 13
T Einfacher Kalender Java Basics - Anfänger-Themen 17
G Kalender Bean in Netbean einbinden Java Basics - Anfänger-Themen 3
F Termine in einen kalender eintragen. Java Basics - Anfänger-Themen 11
G Kalender Von String zu boolean -- NullpointerException Java Basics - Anfänger-Themen 2
S Wie Termine/Notizen in Outlook Kalender einfügen ? Java Basics - Anfänger-Themen 3
D Gibt es einen vordefinierten Kalender in java? Java Basics - Anfänger-Themen 8
H Java Kalender systemabhängig programmieren? Java Basics - Anfänger-Themen 3
B Kalender -> Termine eintragen Java Basics - Anfänger-Themen 1
W Java Kalender Java Basics - Anfänger-Themen 6
B Kalender und Wochentagswechsel Java Basics - Anfänger-Themen 6
G The serializable class Kalender does not declare a static fi Java Basics - Anfänger-Themen 5
A Kalender mit Objekten belegen Java Basics - Anfänger-Themen 3
A kalender Java Basics - Anfänger-Themen 26
J Wie drucke ich eine Komponente wie Kalender auf dem Drucker Java Basics - Anfänger-Themen 3
G Kalender ? Java Basics - Anfänger-Themen 6
S kalender machen Java Basics - Anfänger-Themen 40
G kalender Java Basics - Anfänger-Themen 15
P Kalender Programmieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben