Pdf downloaden
Pdf downloaden
Er zijn verscheiden manieren om datums te vergelijken in Java. Intern wordt een datum gerepresenteerd als een (long) punt in de tijd – het aantal milliseconden dat is verstreken sinds 1 januari 1970. In Java is datum het object Date, wat inhoudt dat het meerdere methoden (methods) behelst voor het vergelijken van datums. Elke methode voor het vergelijken van twee datums zal in principe de verstreken tijd van beide datums vergelijken.
Stappen
-
Gebruik compareTo. Date implementeert Comparable<Date> en dus kunnen twee datums direct met elkaar worden vergeleken met de methode compareTo. Als de datums hetzelfde moment in de tijd aangeven, zal de methode nul retourneren. Indien de datum waarmee vergeleken wordt voor het datum-argument ligt, dan zal er een negatieve waarde worden geretourneerd. Indien de datum waarmee wordt vergeleken een latere datum is dan die van het datum-argument, dan zal er een positieve waarde worden geretourneerd. Indien de datums gelijk zijn, zal er een nul worden geretourneerd. [1] X Bron
-
Creëer de Date-objecten. Je zult elk datum-object moeten creëren voor je ze kunt gaan vergelijken. Een manier om dit te doen is door de klasse SimpleDateFormat toe te passen. Hiermee kun je gemakkelijk datums invoeren in Date-objecten.
SimpleDateFormat sdf = new SimpleDateFormat ( ' yyyy - MM - dd ' ); //Voor het declareren van waarden in nieuwe datum-objecten. Gebruik dezelfde datumindeling bij het creëren van datums Date datum1 = sdf . parse ( ' 1995 - 02 - 23 ' ); //datum1 is 23 februari, 1995 Date datum2 = sdf . parse ( ' 2001 - 10 - 31 ' ); //datum2 is 31 oktober, 2001 Date datum3 = sdf . parse ( ' 1995 - 02 - 23 ' ); //datum3 is 23 februari, 1995
-
Vergelijk de datum-objecten. De onderstaande toont elk geval – minder dan, gelijk aan en groter dan.
datum1 . compareTo ( datum2 ); //datum1 < datum2, kleiner dan 0 datum2 . compareTo ( datum1 ); //datum2 > datum1, retourneert groter dan 0 datum1 . compareTo ( datum3 ); //datum1 = datum3, retourneert 0
Advertentie
-
Gebruik equals, after en before. Datums kunnen met elkaar worden vergeleken volgens de methoden equals, after en before. Indien twee datums dezelfde tijd aangeven, dan zal de equals-methode 'true' retourneren. De voorbeelden gebruiken de eerder gemaakte datums via de compareTo-methode. [2] X Bron
-
Vergelijken met behulp van de before-methode. De onderstaande code toont een geval van true en false. Indien datum1 eerder is dan datum2, dan is het resultaat true. Indien dit niet het geval is, dan retourneert before de waarde false.
System . out . print ( datum1 . before ( datum2 )); //print true System . out . print ( datum2 . before ( datum2 )); //print false
-
Vergelijk dit met de after-methode. De onderstaande code toont een geval van true en false. Indien datum2 later komt dan datum1, dan retourneert after de waarde true. Indien dit niet het geval is, dan retourneert after de waarde false.
System . out . print ( datum2 . after ( datum1 )); //print true System . out . print ( datum1 . after ( datum2 )); //print false
-
Vergelijk met behulp van de equals-methode. De onderstaande code toont een geval van true en false. Indien de datums gelijk zijn, retourneert equals de waarde true. Zijn ze dat niet, dan retourneert equals de waarde false.
System . out . print ( datum1 . equals ( datum3 )); //print true System . out . print ( datum1 . equals ( datum2 )); //print false
Advertentie
-
Gebruik de klasse Calendar. De Calendar-klasse beschikt ook over de methoden compareTo, equals, after en before, die op dezelfde manier werken als hierboven beschreven voor de datum-klasse. Dus als de datumgegevens in een kalender worden bijgehouden, is het niet nodig om 'date' uit te pakken, alleen maar om twee datums te vergelijken. [3] X Bron
-
Instantie creëren van Calendar. Om de Calendar-methoden te gebruiken, heb je enkele Calendar-instanties nodig. Gelukkig kun je de tijd gebruiken zoals gegenereerd door de Date-instanties.
Calendar cal1 = Calendar . getInstance (); //declareert cal1 Calendar cal2 = Calendar . getInstance (); //declareert cal2 Calendar cal3 = Calendar . getInstance (); //declareert cal3 cal1 . setTime ( datum1 ); //past datum toe op cal1 cal2 . setTime ( datum2 ); cal3 . setTime ( datum3 );
-
Vergelijk cal1 en cal2 met behulp van before. De onderstaande code geeft true omdat cal1 eerder is dan cal2.
System . out . print ( cal1 . before ( cal2 )); //print true
-
Vergelijk cal1 en cal2 met behulp van after. De onderstaande code geeft false als waarde, omdat cal1 eerder is dan cal2.
System . out . print ( cal1 . after ( cal2 )); //print false
-
Vergelijk cal1 en cal2 met behulp van equals. De onderstaande code toont een voorbeeld van zowel true als false. De voorwaarde is afhankelijk van de Calendar-instanties die worden vergeleken. De onderstaande code geeft 'true' en daarna 'false' op de volgende regel.
System . out . println ( cal1 . equals ( cal3 )); //print true: cal1 == cal3 System . out . print ( cal1 . equals ( cal2 )); //print false: cal1 != cal2
Advertentie
-
Gebruik getTime. Het is ook mogelijk om twee tijdstippen direct te vergelijken, hoewel elk van de voorgaande benaderingen waarschijnlijk beter leesbare resultaten zal opleveren en dus de voorkeur heeft. Dit is een vergelijking van twee primitieve gegevenstypes, en kan dus gedaan worden met '<', '>' en '=='.
-
Creëer de ‘long’ tijd-objecten. Voor je datums kunt vergelijken, moet je long-integers maken vanuit de gegevens van de hiervoor gemaakte Date-objecten. Gelukkig zal de getTime()-methode het meeste werk voor je doen.
long time1 = getTime ( datum1 ); //declareert primitieve time1 van datum1 long time2 = getTime ( datum2 ); //declareert primitieve time2 van datum2
-
Gebruik een ‘kleiner dan’-vergelijking. Gebruik een ‘kleiner-dan’-symbool (<) om deze twee integer-waarden te vergelijken. Omdat tijd1 kleiner is dan tijd2, zou het eerste bericht geprint moeten worden op het scherm. Het else-statement wordt meegenomen voor de juiste syntax.
if ( tijd1 < time2 ){ System . out . println ( ' datum1 is eerder dan datum2 ' ); //print omdat tijd1 < tijd2 } else { System . out . println ( ' datum1 is later dan of gelijk aan datum2 ' ); }
-
Doe een ‘groter dan’-vergelijking. Gebruik het ‘groter dan’-symbool (>) om deze twee integers met elkaar te vergelijken. Omdat tijd1 groter is dan tijd2, wordt het eerste bericht op het scherm geprint. Het else-statement wordt meegenomen voor een correcte syntax.
if ( tijd2 > tijd1 ){ System . out . println ( ' datum2 komt na datum1 ' ); // print omdat tijd2 > tijd1 } else { System . out . println ( ' datum2 is eerder dan of gelijk aan datum1 ' ); }
-
Doe een ‘gelijk aan’-vergelijking. Gebruik het symbool (==) om deze twee integers te vergelijken. Omdat tijd1 gelijk is aan tijd3, zou het eerste bericht geprint moeten worden. Indien het programma bij het else-statement komt, dan betekent dit dat de tijden niet aan elkaar gelijk zijn. [4] X Bron
if ( tijd1 == tijd2 ){ System . out . println ( ' De datums zijn gelijk ' ); } else { System . out . println ( ' De datums zijn niet gelijk ' ); //print omdat tijd1 != tijd2 }
Advertentie
Bronnen
Over dit artikel
Deze pagina is 2.522 keer bekeken.
Advertentie