programm verbessern

Status
Nicht offen für weitere Antworten.

anne

Mitglied
hab mal eine frage wie ich eines meiner ersten programmer verbessern könnte!
und zwar hab ich ein programm geschrieben mit hilfe dessen man den wochentag bestimmter
daten in der vergangenheit ausrechnen kann !

1. kann mir einer sagen wie das auch klappt wenn man daten über dem jahr 200 eingeben kann!?
2. und wie ausgeschlossen wird das der 29. februar in den bestimmten jahren nicht aufgeführt wird !?

bitte um hilfe danke....

Code:
import java.io.*;
public class anne_daten
{
  public static void main(String args[])
  throws IOException
  {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  int z;
  int m;
  int t;
  int jh;
  int j;
     
    System.out.print(" Gib den Tag ein ");
      t=Integer.parseInt(br.readLine());
        System.out.print(" Gib den Monat an ");
       m=Integer.parseInt(br.readLine());
        System.out.print(" Gib das Jahr ein ");
        j=Integer.parseInt(br.readLine());
        System.out.print(" Gib das Jahrhundert ein ");
        jh=Integer.parseInt(br.readLine());

        z=(t+(((m+1)*26)/10)+((5*j)/4)+((jh)/4)-(2*jh)-1)%7;

switch (z)
{
       case 0:
       System.out.print("SO");  break;
       case 1:
       System.out.print("MO");  break;
       case 2:
       System.out.print("DI");  break;
       case 3:
       System.out.print("MI");  break;
       case 4:
       System.out.print("DO");  break;
       case 5:
       System.out.print("FR");  break;
       case 6:
       System.out.print("SA");  break;
       default;
       System.out.print("Fehler"); break;

} // Ende switch



}
}
 

mic_checker

Top Contributor
Hab dein Prog jetzt nicht getestet, nur ein-zwei allgemeine Hinweise:

anne hat gesagt.:
Code:
import java.io.*;
public class anne_daten

Klassennamen werden groß geschrieben

Code:
{
  public static void main(String args[])
  throws IOException
  {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  int z;
  int m;
  int t;
  int jh;
  int j;
     
    System.out.print(" Gib den Tag ein ");
      t=Integer.parseInt(br.readLine());
        System.out.print(" Gib den Monat an ");
       m=Integer.parseInt(br.readLine());
        System.out.print(" Gib das Jahr ein ");
        j=Integer.parseInt(br.readLine());
        System.out.print(" Gib das Jahrhundert ein ");
        jh=Integer.parseInt(br.readLine());

Du fängst die NumberFormatException nicht ab. Siehe API zu parseInt()

Code:
       default;
       System.out.print("Fehler"); break;

Wenn schon dann:

Code:
default: 
System.out.print("Fehler"); break;


Code:
  }
}

Die gehören noch ins Programm ;)
 

anne

Mitglied
ja die klammern hatte ich ja auch....das prog hat funktioniert.

aber hat jemand noch eine idee wie ich es vervollständigen kann?
 

Wildcard

Top Contributor
Schau dir mal den GregorianCalendar an

Code:
public class Date
{
    public static void main(String args[])
    {
        GregorianCalendar cal = new GregorianCalendar(2005,2,1);
        int i=(cal.get(GregorianCalendar.DAY_OF_WEEK));
        switch (i)
        {
        case GregorianCalendar.MONDAY:
            System.out.println("MO");
            break;

        case GregorianCalendar.TUESDAY:
            System.out.println("DI");
            break;
        case GregorianCalendar.WEDNESDAY:
            System.out.println("MI");
            break;
        case GregorianCalendar.THURSDAY:
            System.out.println("DO");
            break;
        case GregorianCalendar.FRIDAY:
            System.out.println("FR");
            break;
        case GregorianCalendar.SATURDAY:
            System.out.println("SA");
            break;
        case GregorianCalendar.SUNDAY:
            System.out.println("SO");
            break;
        default:
            break;
        }
    }
}
 

mic_checker

Top Contributor
Vergleich doch mal die Lösung von Wildcard mit deiner, ich finde aus deiner wird nicht direkt ersichtlich was es macht:

Code:
z=(t+(((m+1)*26)/10)+((5*j)/4)+((jh)/4)-(2*jh)-1)%7;

Mit GregorianCalendar zu arbeiten ist recht praktisch, außerdem machts den Code lesbarer.
Kannst ja mal deine überarbeitete Version posten.
 
G

Guest

Gast
Code:
 //Verarbeitung
     if ($monat==1)
     {
      $monat=13;
      $jahr=$jahr-1;
     }
     if ($monat==2)
     {
      $monat=14;
      $jahr=$jahr-1;
     }

     
     
 $z=($tag+($monat+1)*26/10+5*$jahr/4+$jahrhundert/4-2*$jahrhundert-1)%7;
 
     if ($z<0)
     {
       $z=$z+7;
     }

So gehts auch ohne GregorianCalendar
 

bambi

Bekanntes Mitglied
sicher "geht's"... aber wenn Du mit "Programm verbessern" auch einen guten Programmierstil
meinst, dann soltest Du Dir den GregorianCalendar schon mal ansehen... :wink:
 
G

Guest

Gast
Stimmt schon aber sie meinte ja:

anne hat gesagt.:
und was soll ich daran erkennen? ha noch jemand eine idee?

und so bleibt ihre Originalformel erhalten. Aber mit dem Programmierstil hast du natürlich recht :D
 

The_S

Top Contributor
Post mal, wenn du ein Beispiel mit ner GUI willst. Hätte daheim nämlich sowas. Muss aber erstmal heimkommen :wink: .
 

bronks

Top Contributor
Wildcard hat gesagt.:
Code:
...
        GregorianCalendar cal = new GregorianCalendar(2005,2,1);
   ...
Ist schon jemandem aufgefallen, daß der Kalender ab dem 01.03.2005 falsch rechnet?

Wildcards Code funktioniert bis zum 28.02.2005 einwandfrei und dann ist es vorbei.

Heute (new GregorianCalendar(2005,3,3)) ist Sonntag??? Ich habe gerade mit einem Kunden Telefoniert und die Kinder sind in der Schule. Was ist schief gelaufen? Könnte das bitte jemand nachprüfen. Bei mir läuft das ganze auf "j2sdk1.4.2_04".
 

Student

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Du verweist ja auch auf den 3.4.2005!!! Und der ist ein Sonntag
Ergänzend:
:arrow: http://java.sun.com/j2se/1.5.0/docs/api/java/util/GregorianCalendar.html#GregorianCalendar(int,%20int,%20int)

Aber hey ... da muss man auch erstmal drauf kommen ;)
 

bronks

Top Contributor
Student hat gesagt.:
... Ergänzend:
:arrow: http://java.sun.com/j2se/1.5.0/docs/api/java/util/GregorianCalendar.html#GregorianCalendar(int,%20int,%20int) ...
Danke!

Über den Sinn mache ich mir einfach keine Gedanken! 8)
 

The_S

Top Contributor
Der Sinn ist, dass der 1. Monat (praktisch Januar) mit einer 0 gekennzeichnet wird. Demnach ist 1 Februar, 2 März, 3 April usw. Kannst dir vorstellen wie im Array. Fängt ja auch mit 0 und nicht 1 an.
 

bronks

Top Contributor
@Hobbit:
Danke für die Erklärung!

Mit "Sinn" meinte ich das etwa wie: Ist das sinnvoll. Da kann ich massenhaft Daten übergeben, aber nur der Monat ist 0-based?

Ich glaube, da hat ein Praktikant bei Sun etwas vermasselt; oder? :? :D
 

Wildcard

Top Contributor
bronks hat gesagt.:
Mit "Sinn" meinte ich das etwa wie: Ist das sinnvoll. Da kann ich massenhaft Daten übergeben, aber nur der Monat ist 0-based?
Als ich den kleinen Beispielcode geschrieben hab bin ich auch über das Problem gestolpert, und war genauso verduzt.
Das überhaupt etwas bei 0 anfängt ist bei einem Kalander Schwachsinn, das es nur die Monate sind ist komplett
fürn A...
bronks hat gesagt.:
Ich glaube, da hat ein Praktikant bei Sun etwas vermasselt; oder?
Kann wohl nicht anders sein :roll:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
Bierhumpen mein erstes großes Programm. Was ändern? verbessern? Java Basics - Anfänger-Themen 12
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
Fugover Kopfrechnen-Programm Java Basics - Anfänger-Themen 6
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8
S Fehler beim Programm Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
A Lotto Programm Java Basics - Anfänger-Themen 3
S Programm erstellen Java Basics - Anfänger-Themen 3
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
G Programm Code Java Basics - Anfänger-Themen 5
CptK Achsenskalierung in Koordinatensystem hängt Programm auf Java Basics - Anfänger-Themen 5
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
Sajeel Chattha Dieses Programm umschreiben Java Basics - Anfänger-Themen 5
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
A Programm Histogram Java Basics - Anfänger-Themen 2
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
CT9288 Interaktion mit laufendem Programm -Fachbegriffe Java Basics - Anfänger-Themen 2
Gaudimagspam Assertions im Programm hinzufügen Java Basics - Anfänger-Themen 4
G Weiß jemand wie man dieses Programm schreibt? Java Basics - Anfänger-Themen 84
C Programm ausführen ohne JRE? Java Basics - Anfänger-Themen 3
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
N Best Practice How can I creat a programm with java under windows 10 in order to open an spreadsheet in libreoffice calc format Java Basics - Anfänger-Themen 11
W Programm dass Palindrome erkennt Java Basics - Anfänger-Themen 6
K Erste Schritte Programm geht aus Schleife, warum? Java Basics - Anfänger-Themen 2
P Wie für EIN Java Programm von 64bit Java (=Standard) auf 32bit Java Installation (Windows) umschalten? Java Basics - Anfänger-Themen 6
K Programm stoppt einfach ohne Grund Java Basics - Anfänger-Themen 4
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
X Kurzes Java-Programm, das sich komisch verhält Java Basics - Anfänger-Themen 6
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
J Programm schreiben Java Basics - Anfänger-Themen 5

Ähnliche Java Themen


Oben