mboost-dp1

Java: At sammeligne 2 Calendar objekter.


Gå til bund
Gravatar #1 - tazimn
22. maj 2009 19:22
Jeg har brug for at teste hvorvidt en dato1 er mindre end dato2.

Dette fortæller Java mig kan gøre på følgende måde:
dato1.before(dato2);


Dette skulle så give true eller false.. Problemet er at ligemeget hvad dato1 er så returnere den altid false. derimod returnere følgende altid true:
dato1.after(dato2);


Kan ikke hitte ud af hvorfor det er sådan? Nogen der kender en anden måde at hitte ud af det på..?
Gravatar #2 - tazimn
22. maj 2009 20:35
Fuck det... Jeg lavede min egen metode til at sammen ligne med.. Den virkede efter hensigten..
Gravatar #3 - arne_v
22. maj 2009 21:36
#1-2

Fejl et sted i din kode.

Eksempel som virker:

import java.util.Calendar;
import java.util.Date;

public class CalComp {
public static void main(String[] args) {
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
Calendar c3 = Calendar.getInstance();
Date t = new Date();
c1.setTime(t);
c2.setTime(t);
c2.add(Calendar.MINUTE, -5);
c3.setTime(t);
c3.add(Calendar.MINUTE, 5);
System.out.println(c1.before(c2));
System.out.println(c1.before(c3));
System.out.println(c1.after(c2));
System.out.println(c1.after(c3));
}
}


Hvis du poster din kode som ikke virkede kan vi finde ud af hvor problemet er.

Det er ikke godt at lave sin egen metode til noget som eksisterer i standard biblioteket.
Gravatar #4 - tazimn
22. maj 2009 23:21
Hej Arne..

Jeg rodede lidt mere med det, ved at lave et andet simpelt eksempel, i stil med dit... dog uden at bruge Date objekter, og der virkede det.. Så jeg implementerede den løsning. Forenklet ser den således ud:
import java.util.Calendar;
import javax.swing.JPanel;

public class NewClass {

public void setPanelUnEditable(JPanel panel, int year, int month, int day) {
Calendar today = Calendar.getInstance();
Calendar test = Calendar.getInstance();
test.set(year, month+1, day);

if (test.before(today)) {
System.out.println("Datoen er før dagsdato");
// panel.setVisible(false);
} else {
System.out.println("Datoen er lig eller efter dagsdato");
// panel.setVisible(true);
}
}
}


Tak for hjælpen ellers..

Og god weekend.
Gravatar #5 - arne_v
23. maj 2009 00:35
#4

Jeg kan godt lide setTime fordi den sætter alle komponenter - de andre set sætter kun nogle af komponenterne.

Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login