Datum Differenz berechnen

frst

Mitglied
Hallo liebes Forum,

ich lese schon einige Zeit mit um meine Java Kenntnisse aufzufrischen und zu erweitern. Ich scheitere momentan an einem Teil meines Projekts. Ich habe zwei JDateChooser aus dem jCalander1.4 in meiner grafischen Oberfläche. Dort kann ich zwei verschiedene Daten auswählen. Dieses Datum kann ich auch in einem Textfeld im Format "locale.Germany" also dd.MM.yy ausgeben. Nun möchte ich einen Schritt weiter gehen und die Differenz zwischen zwei Daten in Tagen berechnen lassen. So das ich später einmal einen "Ausleihpreis" berechnen lassen kann.

Nun seit einigen Stunden befasse ich mich mit dem Thema und komme einfach nicht auf die richtige Spur... Vielleicht kann mir der ein oder andere einen guten Tipp geben. ;(

Hier der wichtigste Ausschnitt!

Java:
public class NotebookForm extends javax.swing.JFrame {

  
   DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.GERMANY);
 
  
    public NotebookForm() {
        initComponents();
    }
    
    
    @SuppressWarnings("unchecked")
    
    }                                                 

    private void btn_TageBerechnenActionPerformed(java.awt.event.ActionEvent evt) {                                                  
      //JOptionPane.showMessageDialog(rootPane, jDateChooser1);
      String strvonDatum = df.format(vonDatumChooser.getDate());
      String strbisDatum = df.format(bisDatumChooser.getDate());  
      
      txtDatumDifferenz.setText(strvonDatum);
     
        
        
        
        
    }

Ich wäre echt dankbar... Einige Lösungen habe ich mit .getTime() gefunden - jedoch wird diese Methode nicht erkannt. Gibt es diese nicht bei DatumChooser?

Sorry - bin irgendwie ein richtiger Newbie ;-)

Vielen Dank!

frst
 
Zuletzt bearbeitet:

Joose

Top Contributor
Wo sind deine Versuche? Ich sehe nur Code der die 2 Daten in einen String parsed/formatiert.
Nirgends eine Zeile Code die etwas berechnet.

Mit
Code:
getDate()
bekommst du das Datum als Objekt (von java.util.Date) zurück. Mit diesen Objekt kannst du weiterarbeiten und rechnen!
 

frst

Mitglied
Genau da liegt mein Problem. Ich bekomme ein String zurück mit dem lässt sich ja nicht rechnen. Nun habe ich einiges über GregorianCalander gelesen - blicke aber noch nicht so richtig durch. Kann ich den String in Greogian Calander so umformen? hierbei bekomme ich immer den Fehler "unreported exception ParseException; must be caught or declared to be thrown"

Java:
  GregorianCalendar cal1 = new GregorianCalendar();
    GregorianCalendar cal2 = new GregorianCalendar();
    String strvonDatum = df.format(vonDatumChooser.getDate());
    cal1.setTime(df.parse(strvonDatum));
      
      String strbisDatum = df.format(bisDatumChooser.getDate());  
      
      txtDatumDifferenz.setText(strvonDatum)

Nun versuche ich mal was mit getDate() zu erreichen :)
 
Zuletzt bearbeitet:

frst

Mitglied
Ich habe mich mal weiter versucht - leider endet es im Fehler...

Java:
public class NotebookForm extends javax.swing.JFrame {
// DateFormat df = new SimpleDateFormat("dd.MM.yyy");
  
   DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.GERMANY);

  
    public NotebookForm() {
        initComponents();
    }
    
    
                 

                                               
        // TODO add your handling code here:
    }                                                 

    private void btn_TageBerechnenActionPerformed(java.awt.event.ActionEvent evt) {                                                  
    //JOptionPane.showMessageDialog(rootPane, jDateChooser1);
    String strvonDatum = df.format(vonDatumChooser.getDate());
    String strbisDatum = df.format(bisDatumChooser.getDate()); 
    
    Date d1 = null;
    Date d2 = null; 
    
    try{
        d1 = format.parse(strvonDatum);
        d2 = format.parse(strbisDatum);
        
        long diff =d2.getTime() - d1.getTime();
        
        long diffTage = diff / (24 * 60 * 60 * 1000);
        
        String s = String.valueOf(diffTage);
    } catch (Exception e)
    {
	e.printStackTrace();
		}
    txtDatumDifferenz.setText(s);
 
Zuletzt bearbeitet:

Joose

Top Contributor
Wie gesagt
Code:
JDateChooser.getDate()
gibt dir einen Objekt zurück mit welchen du weiterarbeiten kannst!

Dein
Code:
df.format(....)
kannst du vorerst weglassen, da erzeugt aus diesem Objekt nur einen schön formatierten String. Dieser hilft dir nicht beim Rechnen

Java:
public class NotebookForm extends javax.swing.JFrame {
...... 
    //JOptionPane.showMessageDialog(rootPane, jDateChooser1);
    String strvonDatum = df.format(vonDatumChooser.getDate());
    String strbisDatum = df.format(bisDatumChooser.getDate()); 
    
    Date d1 = null;
    Date d2 = null; 
    
    try{
        d1 = format.parse(strvonDatum);
        d2 = format.parse(strbisDatum);
   .......

1.) man leitet nicht von JFrame ab wenn man diese Klasse nicht erweitern willst

2.) getDate() gibt dir schon eine Objekt vom Type Date zurück, dieses wandelst du in einen String um und diesen willst du dann wieder in ein Date-Objekt umwandeln. Warum???
 
Zuletzt bearbeitet:

frst

Mitglied
Okay - klingt irgendwie logisch - verdammt stehe ich mittlerweile auf dem schlauch :)

Das hier scheint mir nun auch etwas logischer zu sein - leider meckert er nun
Code:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: <any>
	at NotebookForm.btn_TageBerechnenActionPerformed(NotebookForm.java:155)
	at NotebookForm.access$100(NotebookForm.java:23)
	at NotebookForm$2.actionPerformed(NotebookForm.java:67)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:694)
	at java.awt.EventQueue$3.run(EventQueue.java:692)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:708)
	at java.awt.EventQueue$4.run(EventQueue.java:706)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

Java:
Date d1 = vonDatumChooser.getDate();
    Date d2 = vonDatumChooser.getDate();
    
    
    try{
        
        
        long diff =d2.getTime() - d1.getTime();
        
        long diffTage = diff / (24 * 60 * 60 * 1000);
        
        String s = String.valueOf(diffTage);
    } catch (Exception e)
    {
	e.printStackTrace();
		}
    txtDatumDifferenz.setText(s);

Hab ich was übersehen?
 
Zuletzt bearbeitet:

Joose

Top Contributor
Java:
Date d1 = vonDatumChooser.getDate();
    Date d2 = vonDatumChooser.getDate();    
    try{
        long diff =d2.getTime() - d1.getTime();
        long diffTage = diff / (24 * 60 * 60 * 1000);
        String s = String.valueOf(diffTage);
    } catch (Exception e)
    {
	e.printStackTrace();
		}
    txtDatumDifferenz.setText(s);
Hab ich was übersehen?

Du definierst den String s im try/catch-Block ... sprich innerhalb diese Block kannst du damit arbeiten, außerhalb ist er unbekannt! Daher kannst du den String auch nicht auf das Textfeld setzen.
==> Definiere den String außerhalb des Block!

[TIPP]
Wenn du Code postet, dann entferne unnötige Leerzeilen. Dadurch wird der Post und Code nur unnötig lang
[/TIPP]
 

frst

Mitglied
Vielen vielen Dank! Jetzt tuts... :)
(wo kann ich dir danken?)

:toll::toll::toll::toll:
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
B Differenz von 2 Datum Java Basics - Anfänger-Themen 8
H Differenz zwischen Datum Java Basics - Anfänger-Themen 4
B Datum: Differenz in Tagen berechen Java Basics - Anfänger-Themen 3
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
T Datum als Variable wert Java Basics - Anfänger-Themen 4
T Datum in die als Variabelwert Java Basics - Anfänger-Themen 5
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
J Datum ermitteln ? Java Basics - Anfänger-Themen 14
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Datum und Uhrzeit Java Basics - Anfänger-Themen 4
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
B Datum in dieser Range SQL? Java Basics - Anfänger-Themen 3
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
D Kontoauszüge von bestimmtem Datum Java Basics - Anfänger-Themen 35
B Termine (Datum erstellen), Abhängig von Intervallen Java Basics - Anfänger-Themen 0
A Nächstes Datum ausgeben, if-Schleife unklar Java Basics - Anfänger-Themen 6
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Datum umformatieren Java Basics - Anfänger-Themen 2
D Datum aus Swing in MySQL DB speichern Java Basics - Anfänger-Themen 22
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
D Projekte + Datum + löschen Java Basics - Anfänger-Themen 11
M Datum serialisieren Java Basics - Anfänger-Themen 1
S Datum einlesen Java Basics - Anfänger-Themen 1
D Aktuelles Datum wird falsch ausgegeben Java Basics - Anfänger-Themen 2
K Methoden Datum parsen Java Basics - Anfänger-Themen 16
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
MiMa Jüngstes Datum ermitteln Java Basics - Anfänger-Themen 4
2 Uhrzeit und Datum aktualisieren Java Basics - Anfänger-Themen 12
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
O Datum-Werte gruppieren Java Basics - Anfänger-Themen 6
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Kontoauszug mit Datum ausgeben Java Basics - Anfänger-Themen 4
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
T Datum mit einem Datums-Bereich vergleichen Java Basics - Anfänger-Themen 10
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
P Wieviele Tage seit dem Datum vergangen sind Java Basics - Anfänger-Themen 5
P Liste nach Datum sortieren Java Basics - Anfänger-Themen 7
B tageszahl in Datum umrechnen Java Basics - Anfänger-Themen 6
B String in Datum Java Basics - Anfänger-Themen 3
M CompareTo soll Datum sortieren Java Basics - Anfänger-Themen 2
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
I Datum und Uhrzeitpattern von Locale Java Basics - Anfänger-Themen 7
H Wie wandel ich ein Datum in eine Zeichenkette um mit StringBuffer? Java Basics - Anfänger-Themen 3
I Datum ohne GregorianCalendar und co. Java Basics - Anfänger-Themen 3
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4
N Datum abgleichen und Frage zum Layout Java Basics - Anfänger-Themen 3
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
M Aktuelles Datum in MySQL speichern Java Basics - Anfänger-Themen 11
P Datum umwandeln Java Basics - Anfänger-Themen 5
A Datum formatieren Java Basics - Anfänger-Themen 6
K Samstag einer Woche anhand eines Datum Java Basics - Anfänger-Themen 3
J Mit Datum rechnen Java Basics - Anfänger-Themen 11
B Datum ändern? Java Basics - Anfänger-Themen 8
Tally Methoden BlueJ - Datum als Kalendertag int - tagImJahr Java Basics - Anfänger-Themen 6
K wie Datum in JTable anders anzeigen lassen Java Basics - Anfänger-Themen 2
MiMa String Datum ermitteln Java Basics - Anfänger-Themen 9
D Hilfe beim SDF Datum Ausgabe Java Basics - Anfänger-Themen 20
A Plausibles Datum Java Basics - Anfänger-Themen 21
A Aktuelles Datum einfügen.. Java Basics - Anfänger-Themen 4
K Datum und Uhrzeit als Date Objekt Java Basics - Anfänger-Themen 10
K Java Datum berechnen Java Basics - Anfänger-Themen 13
L Datum probleme Java Basics - Anfänger-Themen 6
S fehler beim datum parsen Java Basics - Anfänger-Themen 6
S Schleife Datum Java Basics - Anfänger-Themen 11
S Datum ändern bzw. abziehen Java Basics - Anfänger-Themen 3
M String in Datum umwandeln mit SimpleDateFormat Java Basics - Anfänger-Themen 3
E Datentypen Unvollständiges Datum parsen Java Basics - Anfänger-Themen 8
T Heutiges datum OHNE Calendar? Java Basics - Anfänger-Themen 9
K Wie Datum um einen Tag erhöhen? Java Basics - Anfänger-Themen 4
A Datum Prüfen Java Basics - Anfänger-Themen 3
B Wie aus einem Datum String eine Timestamp erzeugen Java Basics - Anfänger-Themen 6
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
E Methoden Datum , Uhrzeit, Nachricht in txt Datei schreiben Java Basics - Anfänger-Themen 3
E Eigene class datum Java Basics - Anfänger-Themen 2
A Datum formatieren Java Basics - Anfänger-Themen 8
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
M Datum aus einer Textdatei holen Java Basics - Anfänger-Themen 9
M Datum und Stunde als String ausgeben Java Basics - Anfänger-Themen 15
N Datentypen Datum konvertieren mit kurzer Monatsangabe Java Basics - Anfänger-Themen 3
U Java Datum vergleichen - Sommerzeitproblem Java Basics - Anfänger-Themen 5
R GregorianCalendar auf Datum reduzieren Java Basics - Anfänger-Themen 9
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben