Datum: Ist es Heute oder Gestern?

Lautsprecher

Erfahrenes Mitglied
Hallo,
ich habe erstmal eine Allgemeine Frage: Und zwar ist es irgendwie möglich mit irgendeiner Datumsmethode z. B. mit Calendar. .... zwei Datums zu vergleichen,
und dann entscheiden welches Datum von den beiden aktueller ist?

Ich frage dies, weil ich folgendes Problem lösen muss:

Ich lese ein Datum aus der Datenbank in einen String aus: "20051020"
Das andere Datum beziehe ich aus einer aktuellen Eingabe des Benutzers
(auch ein String)

Nun muss ich prüfen ob die beiden identisch sind oder ob das gerade eingegebene Datum von heute ist "20051021" und praktisch aktueller als "20051020"
 
Hallo,

falls die Monate in folgender Weise : 01,02,03.. usw. und die Tage in 01,02 .. usw. gespeichert sind reicht ein einfacher Zahlenvergleich aus.

Also bspw:

Code:
int datum1 = Integer.parseInt(datum1AlsString);
int datum2 = Integer.parseInt(datum2AlsString);

Und nun kannste die halt vergleichen .. Falls du damit noch weiter arbeiten willst, würde ich richtige Datumsobjekte aus denen machen.

Gruß teppi
 
Hi ist ein super Tipp, anfangs hab ich mir das auch überlegt, dann dachte ich, so einfach kann es nicht sein, wenn ich zum Beispiel 31.12.2005 mit 01.01.2006 vergleiche kommt was falsches raus.
Aber du hast schon recht, hatte wohl gerade eine Denkblockade, aber wie ich daraus Datumsobjekte erstelle, würde ich dennoch gerne wissen..

Danke
 
Huhu !

Code:
package de.otonband;

import java.util.GregorianCalendar;
import java.util.Calendar;


public class StringToDate {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String datum1str = "20051020";
		String datum2str = "20050802";
		
		int[] datum1int = { Integer.parseInt(datum1str.substring(0,4)),
							Integer.parseInt(datum1str.substring(4,6))-1,
							Integer.parseInt(datum1str.substring(6,8))-1};
		
		int[] datum2int = { Integer.parseInt(datum2str.substring(0,4)),
				Integer.parseInt(datum2str.substring(4,6))-1,
				Integer.parseInt(datum2str.substring(6,8))-1};
		
		GregorianCalendar gc1 = new GregorianCalendar(datum1int[0],datum1int[1],datum1int[2]);		
		GregorianCalendar gc2 = new GregorianCalendar(datum2int[0],datum2int[1],datum2int[2]);
		
		// Nun stehen dir die ganzen Java Datumsfunktionen zur Verfügung ..		
		
		System.out.println("Tag (der Woche)  1 : " + gc1.get(Calendar.DAY_OF_WEEK));
		System.out.println("Tag (des Jahres) 1 : " + gc1.get(Calendar.DAY_OF_YEAR));
		
		System.out.println("Tag (der Woche)  2 : " + gc2.get(Calendar.DAY_OF_WEEK));
		System.out.println("Tag (des Jahres) 2 : " + gc2.get(Calendar.DAY_OF_YEAR));
				
		
	}

}

Gruß teppi ;o)
 
Hallo!

Schau mal hier:
Code:
package de.tutorials;
 
 import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
 public class DateCompareExample {
 
 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) throws Exception {
 		String dateStrA = "20051020";
 		String dateStrB = "20050802";
 
 		SimpleDateFormat sdfIn = new SimpleDateFormat("yyyyMMdd");
 
 		Date dateA = sdfIn.parse(dateStrA);
 		Date dateB = sdfIn.parse(dateStrB);
 
 		MessageFormat format = new MessageFormat(
 				"Datum {0} liegt vor Datum {1}");
 
 		SimpleDateFormat sdfOut = new SimpleDateFormat("dd.MM.yyyy");
 
 		if (dateA.before(dateB)) {
 			System.out.println(format.format(new Object[] {
 		    		sdfOut.format(dateA), sdfOut.format(dateB) }));
 		} else {
 			System.out.println(format.format(new Object[] {
 		    		sdfOut.format(dateB), sdfOut.format(dateA) }));
 		}
 	}
 }

Gruß Tom
 
Zurück