Datumsdifferenz in Tagen ermitteln

Status
Nicht offen für weitere Antworten.
F

Flow24

Gast
Hallo zusammen,

in meiner Anwendung habe ich zwei Datums-Variablen vom Typ GregorianCalendar.
Nun muss ich die Tage ermitteln, die zwischen diesen beiden Daten liegen.
Ich habe es mit folgendem Ansatz probiert:

Code:
GregorianCalendar heute = new GregorianCalendar();
	        GregorianCalendar Faellig2 = Faellig;
	        Tage = 0;
	        
	        while (!Faellig2.equals(heute))
	        {
	        	Faellig2.add(Calendar.DATE, 1);
	        	Tage = Tage + 1;
	        		        	
	        }

Das Ganze hat Java aber wohl aufgrund der teilweise sehr großen Datums-Abstände (bis zu 1000 Tage)
überfordert, zumal diese Schleife in einer anderen umfangreichen Schleife steht.

Gibt es irgendeine Java-Funktion mit der Datumsabstände berechnet werden können?

Gruß Flow24
 
F

Flow24

Gast
Also ne konkrete Lösung wird aus dem Thread auch nicht klar (zumal einer der
wichtigsten Links auf eine Beispiel verweist, dass es nicht mehr gibt).

Kann mir jemand weiterhelfen?

Gruß Flow24
 

L-ectron-X

Gesperrter Benutzer
Mit
Code:
long millis = calender.getTimeInMillis();
bekommst du das Datum in Millisekunden umgerechnet, die seit dem 1.1.1970 vergangen sind.
Subtrahiere so beide Werte voneinander und verwandle das Ergebnis mit
Code:
calender.setTimeInMillis(millis);
wieder in ein Calender-Objekt. Und das kannst du mit den entsprechenden Feldvariablen zusammensetzen, wie du es brauchst.
 
S

späterGast

Gast
Hallo,
habe mir die Threads zum Thema durchgelesen aber irgendwo einen Denkfehler.
Ich möchte also eine Datumsdifferenz ermitteln, um dann auf Basis der ausgerechneten Tage ein Skonto oder Verzugszinsen zu berechnen. Es scheitert aber schon an der Datumsdifferenz in Millisekunden.
Folgender Code:
Code:
import java.util.Scanner;
import java.util.Calendar;
import java.util.GregorianCalendar;
class Ueberweisung4
{
  public  static  void main(String[] args)
  {
   GregorianCalendar heute = new GregorianCalendar();
   Scanner eing = new Scanner(System.in);
   System.out.println("Jahr:" ); int j = eing.nextInt();
   System.out.println("Monat:" ); int m = eing.nextInt()-1;
   //wegen januar=0
   System.out.println("Tag:" ); int t = eing.nextInt();
   GregorianCalendar rd = new GregorianCalendar(j,m,t);
   //jetzt Tip von L-ectron-X den ich wohl nicht verstand
   long millisrd = calendar.getTimeInMillis(rd);
   long millisheute = calendar.getTimeInMillis(heute);
   long diffmillis  =  millisheute -  millisrd;
   System.out.println(diffmillis );
  }
}
bringt diese Fehlermeldungen:
Code:
Ueberweisung4.java:17: cannot find symbol
symbol  : variable calendar
location: class Ueberweisung4
   long millisrd = calendar.getTimeInMillis(rd);
Ueberweisung4.java:18: cannot find symbol
symbol  : variable calendar
location: class Ueberweisung4
   long millisheute = calendar.getTimeInMillis(heute);

In der API habe ich nichts gefunden was mir weiter hilft
 
S

SlaterB

Gast
> getTimeInMillis(rd);

wie kommst du darauf, dass man dieser Operation ein Parameter übergeben könnte?
was ist deine Motivation dafür was erwartest du was da passiert?

du meinst sicherlich
rd.getTimeInMillis();

---------

> In der API habe ich nichts gefunden was mir weiter hilft

ja wonach hast du denn gesucht? ;)

nach der Operation getTimeInMillis() im Index?
http://java.sun.com/j2se/1.5.0/docs/api/index-files/index-1.html

hättest du gefunden,


nach den Klassen Calendar oder GregorianCalendar, um die es in diesem Thread geht,
die man leicht von einem Objektnamen oder evtl. falsch geschriebenen Klassennamen 'calendar' hätte ableiten können?

auch dort wärst du auf die Operaion getTimeInMillis() gestoßen
 

L-ectron-X

Gesperrter Benutzer
@SlaterB: Da ist nichts falsch geschrieben. Ich habe oben von einem Objekt geschrieben, welche mit klein geschriebenen Variablen referenziert werden. Es fehlt eigentlich nur die Stelle, an der ich das Calander-Objekt besorge.
Code:
Calendar calendar = Calendar.getInstance(); //besorgt das aktuelle Datum/Zeit

@späterGast: Das GregorianCalendar-Objekt kennt natürlich auch die getTimeInMillis()-Methode, weil es von Calendar erbt.
Und so kannst du von beiden Calendar-Objekten die Millisekunden ermitteln, subtrahieren und den ermittelten Wert in ein Calendar-Objekt schreiben und ausgeben. Die Arbeit kannst du komplett der Klasse Calendar überlassen.
Code:
long millis = calendar.getTimeInMillis() - rd.getTimeInMillis(); //heute minus ein Datum in der Vergangenheit
calendar.setTimeInMillis(millis);
System.out.println("Verstrichene Tage: " + calendar.get(Calendar.DAY_OF_YEAR));

Dein Programm kann also so aussehen:
Code:
import java.util.*;

public class CalendarTest {

   public static void main(String[] args) {
      Scanner eing = new Scanner(System.in);
      System.out.print("Jahr : "); int j = eing.nextInt();
      System.out.print("Monat: "); int m = eing.nextInt()-1;
      System.out.print("Tag  : "); int t = eing.nextInt();
      GregorianCalendar rd = new GregorianCalendar(j,m,t);

      Calendar calendar = Calendar.getInstance();
      long millis = calendar.getTimeInMillis() - rd.getTimeInMillis();
   
      calendar.setTimeInMillis(millis);
      System.out.println("Verstrichene Tage: " + (calendar.get(Calendar.DAY_OF_YEAR)-1));
   }
}

Es bleibt nur noch zu sagen, dass sich die Ausgabe mit Hilfe von Calendar.DAY_OF_YEAR nur auf 364 Tage beschränkt. Darüber hinaus müsste man die Ausgabe bei jahresübergreifenden Ergebnissen mit einer Berechnung erledigen.
Dazu müssen lediglich die Zeilen 15 und 16 mit folgender Zeile ersetzt werden:
Code:
System.out.println("Verstrichene Tage: " +millis/86400000); //ein Tag hat 86400000 Millisekunden
Diese Variante würde ich persönlich immer vorziehen.
 
S

SlaterB

Gast
L-ectron-X hat gesagt.:
@SlaterB: Da ist nichts falsch geschrieben. Ich habe oben von einem Objekt geschrieben, welche mit klein geschriebenen Variablen referenziert werden.

ich zählte nur alle möglichen Gedankengänge auf,
und dazu gehörte bei mir auch eine statische Operation in Calendar
(ein Synonym für System.currentTimeInMillies())

habe dann natürlich in der API erkannt was Sache ist, dafür hat man ja die API
 
S

späterGast

Gast
:toll: Danke an alle, die sich bemühten.:toll: Die Zusammenhänge sind mir klarer geworden und vor allem dieser Umgang mit der API. Ich habe nicht effektiv gesucht, aber über den Index war es ein Kinderspiel. Vielleicht sollte ich hellere Stunden nehmen und nicht den Namen verwirklichen. :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
X Input/Output Höchste Temperaturschwankung zwischen 2 Tagen Java Basics - Anfänger-Themen 2
S OOP Datumsunterschied in Tagen berechnen Java Basics - Anfänger-Themen 3
M Überschneidende Anzahl von Tagen Java Basics - Anfänger-Themen 4
T Prüfung in 2 Tagen Java Basics - Anfänger-Themen 4
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4
R Zeitspanne in Tagen berechnen Java Basics - Anfänger-Themen 3
W Differenz in Tagen von 2 Daten Java Basics - Anfänger-Themen 6
B Datum: Differenz in Tagen berechen Java Basics - Anfänger-Themen 3
S Java2 in 21 Tagen Java Basics - Anfänger-Themen 8
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
S Bildgröße ermitteln & setSize() übergeben Java Basics - Anfänger-Themen 6
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
R Hangman-Spiel-zufälliges Wort ermitteln Java Basics - Anfänger-Themen 4
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
H Palindrom ermitteln Java Basics - Anfänger-Themen 21
J Datum ermitteln ? Java Basics - Anfänger-Themen 14
M Beliebtesten Film ermitteln Java Basics - Anfänger-Themen 6
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
H Bei forEach Index des Elements ermitteln Java Basics - Anfänger-Themen 17
B DHCP-Server Adresse ermitteln Java Basics - Anfänger-Themen 4
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
J Ein Wort aus einer Datei zufällig ermitteln Java Basics - Anfänger-Themen 3
V Erste Schritte Potenzen b^n mittels Schleife ermitteln Java Basics - Anfänger-Themen 7
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
C Laufzeit eines Sortier-Algorithmus ermitteln Java Basics - Anfänger-Themen 4
O 2 Maximalwerte und Minimalwerte aus Array ermitteln Java Basics - Anfänger-Themen 9
L Fortschritt ermitteln Java Basics - Anfänger-Themen 18
N Erste Schritte HSV color space - schwarz und weiß nur anhand von Saturation oder Multiplikator ermitteln Java Basics - Anfänger-Themen 14
N Wahrscheinlichkeiten ermitteln Java Basics - Anfänger-Themen 2
L Objekt Typ zur Laufzeit ermitteln Java Basics - Anfänger-Themen 1
J Schwierigkeitsgrad eines Wortes mit Morsecode ermitteln Java Basics - Anfänger-Themen 18
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
G Größten und kleinsten Wert im Array ermitteln? Java Basics - Anfänger-Themen 7
G Wie kann ich diesen Wert ermitteln? Java Basics - Anfänger-Themen 4
T Rekursiv Tiefe eines binären Suchbaums ermitteln Java Basics - Anfänger-Themen 22
D Maximale Teilsumme ermitteln Java Basics - Anfänger-Themen 6
MiMa Jüngstes Datum ermitteln Java Basics - Anfänger-Themen 4
S Compiler-Fehler im array Maximum ermitteln Java Basics - Anfänger-Themen 6
V Querprodukt ermitteln Java Basics - Anfänger-Themen 6
L Array: Summe aller geraden und ungeraden Zahlen ermitteln Java Basics - Anfänger-Themen 9
Joew0815 Int to string und primzahle ermitteln Java Basics - Anfänger-Themen 2
F Jalousie Positionen ermitteln Java Basics - Anfänger-Themen 4
C Klassen aus einem Package ermitteln und per Laufzeit laden Java Basics - Anfänger-Themen 17
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
C OOP Schwerpunkt eines Dreiecks ermitteln Java Basics - Anfänger-Themen 4
I Zeitraum eines Monats ermitteln und in String ausgeben Java Basics - Anfänger-Themen 1
S Datentypen Dimensionalität eines Arrays ermitteln Java Basics - Anfänger-Themen 2
V Anzahl von gleichen Werten in einem Int-Array ermitteln Java Basics - Anfänger-Themen 4
D TreeMap: Höheren Key ermitteln und den Value liefern Java Basics - Anfänger-Themen 3
J In einem Array die größte Zahl ermitteln und Faktorisieren. Java Basics - Anfänger-Themen 5
V Array ermitteln - in Quellcode speichern Java Basics - Anfänger-Themen 15
H JEditorPane: ermitteln, ob Zeichen unterstrichen Java Basics - Anfänger-Themen 4
M Monat der letzen 12 Monate ermitteln Java Basics - Anfänger-Themen 8
MiMa String Datum ermitteln Java Basics - Anfänger-Themen 9
H Veränderung eines Objekts ermitteln Java Basics - Anfänger-Themen 6
S Wochentage ermitteln Java Basics - Anfänger-Themen 5
S Ermitteln und Setzen der Attribute eines Objektes Java Basics - Anfänger-Themen 6
F Den Gewinner der Tordifferenz ermitteln Java Basics - Anfänger-Themen 5
J Eltern-Fenster ermitteln Java Basics - Anfänger-Themen 2
S MP3 Spielzeit mit jid3lib ermitteln? Java Basics - Anfänger-Themen 3
M Größer der eigenen .jar ermitteln Java Basics - Anfänger-Themen 4
M Größe einer Datei via. Link ermitteln Java Basics - Anfänger-Themen 9
R Alle Klassen ermitteln, die Interface implementieren / Reflection Java Basics - Anfänger-Themen 51
C Nächsten Montag ermitteln Java Basics - Anfänger-Themen 19
W Position in ArrayList ermitteln Java Basics - Anfänger-Themen 4
B Font Namen ermitteln Java Basics - Anfänger-Themen 7
C least significant bit einer HexMaske für Bitshift ermitteln Java Basics - Anfänger-Themen 2
B Pfad einer .jar im Programm ermitteln Java Basics - Anfänger-Themen 13
H "Index" eines Button ermitteln Java Basics - Anfänger-Themen 7
C Bereits geöffnetes Object ermitteln Java Basics - Anfänger-Themen 5
S ermitteln eines Wertes im StringArray Java Basics - Anfänger-Themen 4
D Ermitteln des kleinsten Messwertes von jedem Tag Java Basics - Anfänger-Themen 15
C Hösten Wert aus mehren Listen ermitteln Java Basics - Anfänger-Themen 2
D Input/Output Pfad richtig ermitteln Java Basics - Anfänger-Themen 12
P Dateigröße von Ordnern ermitteln Java Basics - Anfänger-Themen 8
T Enum - Key als Value ermitteln Java Basics - Anfänger-Themen 7
J den x und y Wert beim klicken der Maus ermitteln Java Basics - Anfänger-Themen 2
M float/double Anzahl Nachkommastellen ermitteln Java Basics - Anfänger-Themen 18
G Sekunden bis zum Ende der aktuellen Kalenderwoche ermitteln! Java Basics - Anfänger-Themen 3
F Substring mittels RegEx ermitteln/ersetzen? Java Basics - Anfänger-Themen 2
M Datentypen Generics: Exacten Typ ermitteln Java Basics - Anfänger-Themen 6
Spin Backgrond Color von Image ermitteln Java Basics - Anfänger-Themen 2
M Größe einer Konsole ermitteln Java Basics - Anfänger-Themen 2
c_sidi90 Größe von Dateien aus File Array ermitteln Java Basics - Anfänger-Themen 12
P Ermitteln aller perfekten Zahlen Java Basics - Anfänger-Themen 12
D Pfad zu "Eigenen Dateien" ermitteln Java Basics - Anfänger-Themen 8
A Relativer Pfad zu einem File ermitteln Java Basics - Anfänger-Themen 2
P Bestimmte Zeilen einer Datei ermitteln ? Java Basics - Anfänger-Themen 30
M Datentypen Wrapperclass eines Primitives ermitteln Java Basics - Anfänger-Themen 4
StrikeTom Shift + pfeiltaste ermitteln Java Basics - Anfänger-Themen 3
H Wie Projekt-Ordner-Pfad ermitteln? Java Basics - Anfänger-Themen 11
A Aktueller Pfad des Programms (.jar) ermitteln Java Basics - Anfänger-Themen 10
P Externe IP ermitteln? Java Basics - Anfänger-Themen 5
J Das Maximum einer Liste ermitteln Java Basics - Anfänger-Themen 8
S Klassennamen ermitteln Java Basics - Anfänger-Themen 10
R Stoppuhr: Zeit ermitteln und übergeben - Variable static?? Java Basics - Anfänger-Themen 6
T PixelFarbe ermitteln und in Fenster zeichnen Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben