Java Datum Differenz (kleiner Fehler)

KogoroMori21

KogoroMori21

Mitglied
Guten Tag liebes Java-Forum,
ich hab ein kleinen Fehler im Code und weiß nicht genau wie ich den lösen soll.
Kurz zum Verständnis:
Ziel der Aufgabe ist es in der Console seinen Geburtstag einzugeben und er berechnet die Differenz der Tage zum heutigen Datum.

Das Programm sollte so funktionieren das nach dem man das Geburtsdatum eingegeben hat, direkt der Satz erscheint: Hallo Max Mustermann, Du bist XXX Tage alt.
Doch bislang hab ich das so das ich Name und Geburtsdatum eingeben muss und anschließend dann das Datum und dann erscheint erst der Satz..

Ich denk mein Fehler liegt in der Zeile 12: Date date1 = simpleDateFormat.parse(IO.readString());
und in der Zeile 46 bei der String ausgabe.

-Die Ausgabe der Console befindet sich im Anhang.


DateTi meUtils:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeUtils {
//Start der Main-Methode!
    public static void main(String[] args) {
        DateTimeUtils obj = new DateTimeUtils();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/M/yyyy");
        
        try {
            Date date1 = simpleDateFormat.parse(IO.readString());
            Date date2 = simpleDateFormat.parse("27/12/2020");
            obj.printDifference(date1, date2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
//Ende der Main-Methode!

    //IO Ausgaben
    String vorname = IO.readString("Vorname: ");
    String name = IO.readString("Name: ");
    int tag = IO.readInt("Geburtsdatum Tag: ");
    int monat = IO.readInt("Geburtsdatum Monat: ");
    int jahr = IO.readInt("Geburtsdatum Jahr: ");

    // 1 minute = 60 seconds
    // 1 hour = 60 x 60 = 3600
    // 1 day = 3600 x 24 = 86400
    public void printDifference(Date startDate, Date endDate) {

        // milliseconds
        long different = endDate.getTime() - startDate.getTime();


        long secondsInMilli = 1000;
        long minutesInMilli = secondsInMilli * 60;
        long hoursInMilli = minutesInMilli * 60;
        long daysInMilli = hoursInMilli * 24;

        long elapsedDays = different / daysInMilli;
        different = different % daysInMilli;

        String ausgabe = "Hallo " + vorname + " " + name + ", " + "Du bist " + elapsedDays + " Tage alt.";
        System.out.println(ausgabe);
    }

}
 

Anhänge

  • console.JPG
    console.JPG
    17,2 KB · Aufrufe: 9
kneitzel

kneitzel

Top Contributor
Du hast die Eingabe des Geburtstages ja zwei Mal:
Java:
    int tag = IO.readInt("Geburtsdatum Tag: ");
    int monat = IO.readInt("Geburtsdatum Monat: ");
    int jahr = IO.readInt("Geburtsdatum Jahr: ");
Das ist die erste Eingabe, die Du aber nicht weiter nutzt.

Was Du nutzt, ist die Eingabe hier:
Java:
Date date1 = simpleDateFormat.parse(IO.readString());
Die Eingabe im zweiten Part nutzt Du dann für die Berechnung, die erste Eingabe nutzt du überhaupt nicht.
 
KogoroMori21

KogoroMori21

Mitglied
Du hast die Eingabe des Geburtstages ja zwei Mal:
Java:
    int tag = IO.readInt("Geburtsdatum Tag: ");
    int monat = IO.readInt("Geburtsdatum Monat: ");
    int jahr = IO.readInt("Geburtsdatum Jahr: ");
Das ist die erste Eingabe, die Du aber nicht weiter nutzt.

Was Du nutzt, ist die Eingabe hier:
Java:
Date date1 = simpleDateFormat.parse(IO.readString());
Die Eingabe im zweiten Part nutzt Du dann für die Berechnung, die erste Eingabe nutzt du überhaupt nicht.
Ja genau und mein Ziel ist es die erste Eingabe zur Berechnung zu nutzen und auf die zweite zu verzichten. Doch bislang krieg ich es nicht hin..😅
 
kneitzel

kneitzel

Top Contributor
Also der Konstruktor von Date, der Year, Month und Day entgegen nimmt, ist deprecated. Daher wäre etwas wie
Java:
new GregorianCalendar(year, month - 1, day).getTime();
denkbar.

And die Werte kommst ja über die obj Variable. Bitte darauf Achten: Monat ist 0-basiert, also daher 1 abziehen.
 
KogoroMori21

KogoroMori21

Mitglied
@mihe7 Hat eine 'oder' Frage gestellt und du hast mit


geantwortet...
Oh tut mir leid, also ich soll Tag, Monat und Jahr eingeben können und daraus sollten sich dann die Anzahl der Tage ermitteln lassen
Java:
    String vorname = IO.readString("Vorname: ");
    String name = IO.readString("Name: ");
    int tag = IO.readInt("Geburtsdatum Tag: ");
    int monat = IO.readInt("Geburtsdatum Monat: ");
    int jahr = IO.readInt("Geburtsdatum Jahr: ");

Wie am Code beispiel zu sehen. Das Problem ist wie gesagt, dass ich nachdem ich das Jahr eingebe, nochmal zusätzlich ein Datum eingeben muss und das Programm die Berechnung an dem Datum durchführt und nicht an dem was ich vorher eingegeben habe. Mein Ziel ist es also, dass ich anschließend nicht nochmal ein Datum eingeben muss, sondern das er mit den Werten die ich schon mit IO.readInt eingegeben habe die Anzahl der Tage bereechnet.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Das Problem ist wie gesagt, dass ich nachdem ich das Jahr eingebe, nochmal zusätzlich ein Datum eingeben muss und das Programm die Berechnung an dem Datum durchführt und nicht an dem was ich vorher eingegeben habe.
Das Problem ist vielmehr, dass Du das Datum noch mal einliest, obwohl du schon Tag, Monat & Jahr hast.

Wie du aus Tag, Monat & Jahr ein Date-Objekt erstellen kannst, hat @kneitzel schon in #5 geschrieben.

Allerdings: Date ist "inoffiziell" deprected, davon ist ganz stark abzuraten. LocalDate wäre hier das deutlich sinnvollere.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
K Java Datum berechnen Java Basics - Anfänger-Themen 13
U Java Datum vergleichen - Sommerzeitproblem Java Basics - Anfänger-Themen 5
U Java Datum Eingabe Java Basics - Anfänger-Themen 5
M Datum in Java Java Basics - Anfänger-Themen 5
M Datum in Java Java Basics - Anfänger-Themen 3
J Aktuelles Datum per Java an MsSQL übergeben? Java Basics - Anfänger-Themen 2
S Datum mit Java aus einer Acces DB umwandeln Java Basics - Anfänger-Themen 3
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
TimoN11 Java spezielle Suchprobleme - Aufgabe Java Basics - Anfänger-Themen 5
I Java-Wort einlesen und ausgeben Java Basics - Anfänger-Themen 7
H Brauche Hilfe in Java Eclipse Programmieraufgabe Neuling Java Basics - Anfänger-Themen 3
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 17
Abraham42 Sparguthaben JAVA Java Basics - Anfänger-Themen 4
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
H Binominalkoeffizient tail-rekursiv in java darstellen Java Basics - Anfänger-Themen 0
H Audio in Java Java Basics - Anfänger-Themen 3
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
AlexVo String zu Java Anweisung getString("*** java code ***") Java Basics - Anfänger-Themen 19
R Java (Eclipse) "Lagerverwaltung" HILFE Java Basics - Anfänger-Themen 13
TimoN11 Java - Eine oder mehrere Eingaben möglich machen Java Basics - Anfänger-Themen 6
M Rekursive Java-Methode Java Basics - Anfänger-Themen 13
M Java Spiel wie Wer wird Millionär Java Basics - Anfänger-Themen 1
bafou Dreieckszahlen in java Java Basics - Anfänger-Themen 3
P Best Practice Druck aus Java Anwendung in MacOs Java Basics - Anfänger-Themen 0
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
B java.time Duration mit Kommazahl? Java Basics - Anfänger-Themen 4
Devin Wo kann man einen Java Lehrplan finden? Java Basics - Anfänger-Themen 5
O Java Weinachtsbaum in einem Bilderramen 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
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
M Java Kompilieren über Package grenzen hinaus Java Basics - Anfänger-Themen 4
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 1
Gaudimagspam BMI in Java implementieren Java Basics - Anfänger-Themen 38
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
S Sprung mit Java (GameGrid) Java Basics - Anfänger-Themen 9
Devin Wie lange braucht man um Java zu beherrschen und wie kann man es am schnellsten erlernen? Java Basics - Anfänger-Themen 7
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
T Klassendiagramm in Java überführen Java Basics - Anfänger-Themen 2
Gaudimagspam Caesars Code entziffern in Java Java Basics - Anfänger-Themen 8
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
P Mit iPad Java lernen Java Basics - Anfänger-Themen 15
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1
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
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
J Java FX - Label aktualisieren Java Basics - Anfänger-Themen 1
A Hilfe bei Java Projekt Java Basics - Anfänger-Themen 4
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
M Java Einstellung von Apache POI für MS Word Erstellung mit Eclipse Java Basics - Anfänger-Themen 6
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
P Wie für EIN Java Programm von 64bit Java (=Standard) auf 32bit Java Installation (Windows) umschalten? Java Basics - Anfänger-Themen 6
C Suche Nachhilfe in Java Java Basics - Anfänger-Themen 5
B java.io.OutputStream zu java.io.InputStream konvertieren Java Basics - Anfänger-Themen 18
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
M Java entity und wertklassen Java Basics - Anfänger-Themen 2
G Java Vererbung Java Basics - Anfänger-Themen 8
M Java Klasse Object Java Basics - Anfänger-Themen 5
M Java GUI label ändert sich erst zum Schluss Java Basics - Anfänger-Themen 4
G Java Lambda Ausdrücke Java Basics - Anfänger-Themen 19
M Java GUI explorer aufrufen um Pfad zu bekommen Java Basics - Anfänger-Themen 3
M Java Anweisungen Java Basics - Anfänger-Themen 4
M Java 8 Lambda Expression Java Basics - Anfänger-Themen 1
S Java Array Probleme Java Basics - Anfänger-Themen 3
Mr_Kleeblatt Operatoren if (arri[i] != "test.java"&& arri[i] != "test.class") Java Basics - Anfänger-Themen 3
S Java Stream API Java Basics - Anfänger-Themen 6
S Java Array Problem... Java Basics - Anfänger-Themen 2
M Java Listen Java Basics - Anfänger-Themen 4
G Java Object value und entity? Java Basics - Anfänger-Themen 2
X Kurzes Java-Programm, das sich komisch verhält Java Basics - Anfänger-Themen 6
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
G Java Dateisystem Java Basics - Anfänger-Themen 4
G Java charAt Methode Java Basics - Anfänger-Themen 10
L Java lernen Java Basics - Anfänger-Themen 1
G Rot-Schwarz-Bäume Java Java Basics - Anfänger-Themen 10
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
G Java LinkedList Java Basics - Anfänger-Themen 6
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
Y Java andere Klasse aufrufen Java Basics - Anfänger-Themen 6
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
Z vereinfachtes Wörterbuch in java modellieren Java Basics - Anfänger-Themen 10
L Zufälliges Objekt aus der ArraylList ohne java.util.Random Java Basics - Anfänger-Themen 56
S Geht das bei Java ? Java Basics - Anfänger-Themen 11
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
C Java Spiel Java Basics - Anfänger-Themen 3
R Java SQL Fehler! Java Basics - Anfänger-Themen 4
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
G Java equals() Methode Java Basics - Anfänger-Themen 9
G Java Objekte auf Duplikate testen Java Basics - Anfänger-Themen 4
D Java Einstieg Java Basics - Anfänger-Themen 4
K Java Projekt Hilfe Java Basics - Anfänger-Themen 5
B Java Mail -> Mail senden, ist aber nich in IMAP unter "Gesendet" Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben