Datum mit einem Datums-Bereich vergleichen

toad

Mitglied
Hallo zusammen,

eines vorweg, ich bin absoluter Beginner was Java angeht. Ich möchte hier eigentlich nicht unbedingt fertigen Code "erfragen", sondern ich benötige eher einen gedanklichen "Anschubser". Für das nachfolgende Problem gibt es durchaus Lösungen in Excel (mit oder ohne Makro, beides auch schon selbst durchexerziert und für meine Bedürfnisse angefertigt), bin daher also etwas "vorbelastet" und hänge daher wohl etwas in meinem Schubladendenken fest...

Aus gegebenen Anlass habe ich mir vorgenommen, etwas zu kreiren, um ein Datum mit einem Datumsbereich zu vergleichen. Hintergrund ist der, das zu einem bestimmten Zeitpunkt ein bestimmter Zinssatz für Verzugszinsen gültig war. Seit dem 01.01.2002 wechseln die Zinssätze jeweils zum 01.01 und dem 01.07 eines jeden Jahres. Somit brauche ich zum einen den Bereich, wo dieses erfragte Datum liegt (um den damaligen Zinssatz zu ermitteln) und dann die Differenz bis zum nächsten Zinswechsel.

Würdet ihr hier mit if-else ansetzen ?
Kann ich auch so einer Art "Liste" (Tabelle) definieren mit der ich dann vergleichen kann ? (dort würden dann auch für die vollen Zeiträume die Anzahl der Tage stehen, die ich zur Betragsermittlung zusätzlich benötige) Beispiel-Tabelle: Verzugszinsrechner für Verzugszinsen
Würdet Ihr eher das Datum als String ziehen und dann vergleichen oder eher mit calendar Funktion arbeiten ? Ist joda dafür besser geeignet ?

Wie gesagt, nur ein gedanklicher Anschubser.... den Rest würde ich gerne selbst austüfteln :rtfm:

Danke Euch schon mal im Voraus.

Gruß Carsten
 

Supra

Bekanntes Mitglied
Moin,

ich habe nicht alles verstanden aber es ist ja auch erst 8 uhr ;(. Also, wenn in deiner if anweisung etwas passieren soll und in der else, sprich 2 unterschiedliche sachen, dann würde ich es für sinnvoll halten, also wenn if nicht zutrifft immer was anderes gemacht werden soll. Ansonsten ist im allgemein If schonmal nicht schlecht. Dann das mit der liste, sollen da die daten drinne sein zum vergleichen? klar wieso nicht. und ich würde (Gregorian - ) Calendar benutzen, da es da nütliche vorteile gibt, muss aber auch gestehen das ich mit einem datum als string noch nie gearbeitet habe.

Viele Grüße

Supra
 

VfL_Freak

Top Contributor
Moin,

also - ich habe den ersten Teil auch nicht verstanden :(

Für Arbeiten mit einem Datum würde ich IMMER die Joda-Lib bevorzugen, da sie gegenüber Date/Calendar/Gregorian Calendar doch erhebliche Vorteile hat (u. a. ist nichts als depricated deklariert, Monate laufen von 1 - 12, statt 0 - 11 usw.)

Gruß
Klaus
 

toad

Mitglied
Hi,

erst einmal vielen Dank das Ihr schon mal geantwortet habt.

Ok ich hab mich vielleicht auch etwas umständlich ausgedrückt.....sorry.
Also ein Beispiel. Person X ist zur Zahlung eines Betrages von sagen wir 1000 Euro am 16.01.2013 verurteilt worden. Im Urteil stehen dann nicht explizite Zinsen, sondern 5 Prozenpunkte über dem Basiszinssatz. Dieser Basiszinssatz wird am jeden 01.01. und jeden 01.07. neu festgelegt, wechselt also alle halbe Jahr. Diese unterschiedlichen Festlegungen reichen bis ins Jahr 2002 zurück. Jetzt muss ich doch als erstes heraus finden, in welchem "Bereich" sich das festgesetze Datum befindet, dann wieviele resteliche Tage es noch sind, bis zum nächsten Zinswechsel und dann die restelichen Zeiträume ermitteln, um dann den Betrag inklusive der Verzugszinsen (tagesgenau) zu ermitteln. Ich hoffe, das ich jetzt das rüberbringen wollte, was ich mir vorgenommen habe um zu setzen (war ja auch 1 Uhr nachts als ich das geschrieben haben :) ).

Gruß Carsten
 

VfL_Freak

Top Contributor
Moin Carsten,

ja ja, das ändert aber alles nichts daran, dass Du mit vernünftigen Datumobjekten arbeiten solltest (ist nur dann wohl wirklich sauber).
Ob nun Joda oder die von flown genannte Variante (kenne ich so nicht, da ich noch kein Java 8 nutzen kann), ist dann letztlich unerheblich, da beides ja nur ein Hilfsmittel für den von Dir zu bastelnden Algorythmus darstellt !

Gruß Klaus
 
Zuletzt bearbeitet:

toad

Mitglied
Hallo Klaus,
Danke Dir für die schnelle Rückmeldung. Ich werde mich dann mal ranmachen und das dann versuchen um zu setzen... Bin gespannt, ob mir das so gelingt :)

Gruß Carsten
 

VfL_Freak

Top Contributor
Ich würde mir ggf. vorab mal auf dem Papier einen Pseudo-Algorythmus erarbeiten, den Du dann später nur zu coden brauchst!
Hast Du sonst mal im Web nach Beispielen gesucht?
Da sollte es doch so einiges geben ...
 

toad

Mitglied
Hi,
ja hab schon danach gegoogelt, aaaaaber .... deshalb frag ich ja nach, wie ihr es machen würdet, denn das optimale habe ich nicht gefunden. Mal war es Datum-Vergleich größer/kleiner, oder genauer Treffer ja/nein... mal war es ein Ansatz mit Joda und mal war es gregorianCalendar... die Java8 API war allerdings noch nicht dabei....
Ich maße mir allerdings nicht an, bereits alles durchforstet zu haben, ... kein Mensch ist unfehlbar ;-)... und ich stehe ja noch am Anfang, kann also sein, das ich auch etwas überlesen habe.
Aber ich denke, das sollte kein unlösbares Problem sein :)

... und die Idee mit dem Papier ist nicht schlecht. Danke. man bekommt doch einen anderen Blick dafür.

Gruß Carsten
 

Flown

Administrator
Mitarbeiter
So ich hab dir mal einen Codeschnipsel geschrieben für die Java 8 API:

Da sollte alles darin vorkommen das du gefordert hattest.
Java:
import java.time.LocalDate;
import java.time.Period;
import java.time.temporal.ChronoUnit;

public class Test {
  public static void main(String... args) {
    
    LocalDate start = LocalDate.of(2002, 1, 1);
    Period next = Period.ofMonths(6);
    
    // nth period
    int period = 0;
    for (LocalDate per = start; per.isBefore(LocalDate.now()); per = per.plus(next)) {
      period++;
    }
    System.out.println("We're now in the " + period + "th period");
    
    // get Days in between two dates
    System.out.println(start.until(LocalDate.now(), ChronoUnit.DAYS));
    
    // is date equals
    
    LocalDate today = LocalDate.now();
    LocalDate alsoToday = LocalDate.of(today.getYear(), today.getMonthValue(), today.getDayOfMonth());
    
    System.out.println(today.compareTo(alsoToday) == 0);
    // or
    System.out.println(today.equals(alsoToday));
  }
}
 

toad

Mitglied
Hi,
Super. Danke dir. Hab festgestellt, das die Umsetzung wohl nicht ganz so easy für einen Beginner ist, aber ein gutes Projekt um sich mit der Sprache auseinander zu setzen :)
Ich halte Euch auf dem Laufenden.

Gruß Carsten
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
B Wie aus einem Datum String eine Timestamp erzeugen Java Basics - Anfänger-Themen 6
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4
A Datum prüfen, ob es vor einem anderen Datum liegt Java Basics - Anfänger-Themen 2
B Errechnen(Jahre Monate Tage)von einem Datum zu einem anderen Java Basics - Anfänger-Themen 3
S zu einem Datum Tage addieren Java Basics - Anfänger-Themen 2
G Datum und Uhrzeit in einem String suchen und ausgeben Java Basics - Anfänger-Themen 2
R aktuelles Datum formatieren und in einem String speichern Java Basics - Anfänger-Themen 5
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
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
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
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
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 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
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
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
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
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
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
F Datum Differenz berechnen Java Basics - Anfänger-Themen 7
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
B Differenz von 2 Datum Java Basics - Anfänger-Themen 8
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
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

Ähnliche Java Themen

Neue Themen


Oben