Datum abgleichen

starbuck86

Mitglied
Hallo.
Irgendwie steck ich grad fest mit meiner Datumsabfrage. Habe wohl irgendwo einen Logikfehler im Algorhythmus oder etwas gemacht was die Runtime nicht unterstützt.

Folgendes:
Java:
Date d = new Date();
if (!state_file[i][3].equals("unavailable") && port.equals("prod")) {
	if (state.equals("unavailable")) {
		if (d.getDay() != 7 && !(d.getHours()>4 && d.getHours()<7)) {
		// Ausschluss des kleinen Windows
			try { 
				java.lang.Runtime.getRuntime().exec("/export/home/s/mailscript "+db+" "+state+" "+ff.format(d)); }
			catch (IOException ioe) { ioe.printStackTrace(); }
		System.out.println(f.format(d)+" - "+port+" "+kx+" "+db+": "+state_file[i][3]+" -> "+state);
		}
	}
}

Das ist der Abschnitt des Quelltextes um den es sich handel.

Ich möchte, dass Sonntag morgens zwischen 4 und 7 Uhr keine Mails verschickt werden und frage über das if (d.get..... ab.
1. verschickt er immer noch Mails
2. ist das getDay, getHours durchgestrichen in Eclipse - was bedeutet das genau?

Bin für jede Hilfe dankbar!
Danke && Gruß
Thomas
 
Moin Thomas,

durchgestrichene Funktionen bedeuten, dass diese deprecated (= veraltet) sind und besser nicht mehr benutzt werden sollten!

Du solltest besser "java.util.Calendar" benutzen! ;)

Ich benutze es bspw. etwa so :
Java:
int dateDay = Calendar.DATE;
int dateMonth = Calendar.MONTH;
int dateYear = Calendar.YEAR;
// ----------------------------
Calendar calVal = Calendar.getInstance();
calVal.set(dateYear, dateMonth , dateDay, Integer.parseInt(strHour), Integer.parseInt(strMinutes));
...
Date dateVal = calVal.getTime();

Gruß
Klaus
 
Da die Methoden deprecated sind, hilft es meiner Meinung nach nicht, sich ein Date mit "getTime()" zu holen, da man da wieder auf den deprecated Methoden landet.

Besser wäre :


Java:
Calendar cal = Calendar.getInstance();

int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
 
Die getTime()-Methode ist nicht deprecated, das ist richtig, allerdings die Methoden von "Date". Wenn du mit einem "Date" ansich arbeitest ist das in Ordnung, aber hier werden ja einzelne Werte aus dem Date-Objekt benötigt und die Getter sind nunmal deprecated ;)
 
Hallo Hammet,

ok, insoweit hast Du Recht ;)
Allerdings wird in meinem Beispiel die getTime-Fkt. ja auch mit einen Calendar-Objekt ausgeführt! ;-] Und das so erzeugte "Date dateVal" wird dann an ein "javax.swing.SpinnerDateModel" weitergeben ..... dort wird es dann "modelTime.setValue(dateVal)" gesetzt .....

Habe das ganze Projekt auch nur von meinem Vorgänger so übernommen und durchblicke es nicht im Detail, weil es auch oft recht wusselig ist :-(

Gruß
Klaus
 
Zurück