4 manieren om twee datums in Java te vergelijken

Inhoudsopgave:

4 manieren om twee datums in Java te vergelijken
4 manieren om twee datums in Java te vergelijken

Video: 4 manieren om twee datums in Java te vergelijken

Video: 4 manieren om twee datums in Java te vergelijken
Video: Change Inkscape Default Settings 2024, April
Anonim

Er zijn verschillende manieren om Java-datums te vergelijken. Intern wordt een datum weergegeven als een (lang) tijdstip -- het aantal milliseconden dat is verstreken sinds 1 januari 1970. In Java is Datum een object, wat betekent dat het meerdere methoden voor vergelijking bevat. Elke methode om twee datums te vergelijken, zal in wezen de tijden van de datums vergelijken.

Stappen

Methode 1 van 4: CompareTo. gebruiken

4301351 1
4301351 1

Stap 1. Gebruik CompareTo

Datum implementeert Vergelijkbaar en dus kunnen twee datums direct worden vergeleken met de methode CompareTo. Als de datums voor hetzelfde tijdstip zijn, retourneert de methode nul. Als de datum die wordt vergeleken vóór het datumargument valt, wordt een waarde kleiner dan nul geretourneerd. Als de datum die wordt vergeleken na het datumargument valt, wordt een waarde groter dan nul geretourneerd. Als de datums gelijk zijn, wordt de waarde 0 geretourneerd.

4301351 2
4301351 2

Stap 2. Maak de datumobjecten

U moet elk datumobject maken voordat u ze kunt vergelijken. Een manier om dit te doen is door de klasse SimpleDateFormat te gebruiken. Het zorgt voor een gemakkelijke invoer van datumwaarden in datumobjecten.

    SimpleDateFormat sdf = nieuw SimpleDateFormat("jjjj-MM-dd"); // Voor het declareren van waarden in nieuwe datumobjecten. gebruik dezelfde datumnotatie bij het maken van datums Date date1 = sdf.parse("1995-02-23"); //date1 is 23 februari 1995 Datum date2 = sdf.parse ("2001-10-31"); //date2 is 31 oktober 2001 Datum date3 = sdf.parse("1995-02-23"); //datum3 is 23 februari 1995

4301351 3
4301351 3

Stap 3. Vergelijk de datumobjecten

De onderstaande code toont u elk geval - kleiner dan, gelijk aan en groter dan.

    datum1.vergelijkenTo(datum2); //date1 < date2, retourneert minder dan 0 date2.compareTo(date1); //date2 > date1, retourneert groter dan 0 date1.compareTo(date3); // date1 = date3, dus zal 0 naar console afdrukken

Methode 2 van 4: Gelijk aan, na en vóór gebruiken

4301351 4
4301351 4

Stap 1. Gebruik gelijken, erna en ervoor

Datums kunnen worden vergeleken met de gelijken, na en vóór methoden. Als twee datums voor hetzelfde tijdstip zijn, retourneert de methode equals true. In de voorbeelden worden eerder gemaakte datums uit de methode CompareTo gebruikt.

4301351 5
4301351 5

Stap 2. Vergelijk met behulp van de before-methode

De onderstaande code toont een waar en onwaar geval. Als datum1 vóór datum2 ligt, retourneert before waar. Als dit niet het geval is, retourneert before false.

    Systeem.uit.print(datum1.voor(datum2)); // drukt true af System.out.print (date2.before (date2)); // drukt vals af

4301351 6
4301351 6

Stap 3. Vergelijk met behulp van de na-methode

De onderstaande code toont een waar en onwaar geval. Als date2 na datum1 valt, wordt na true geretourneerd. Als dit niet het geval is, wordt na het retourneren false weergegeven.

    System.out.print(date2.after(date1));//prints true System.out.print(date1.after(date2));//prints false

4301351 7
4301351 7

Stap 4. Vergelijk met de equals-methode

De onderstaande code toont een waar en onwaar geval. Als de datums gelijk zijn, retourneert gelijk aan waar. Als dit niet het geval is, retourneert equals false.

    System.out.print(date1.equals(date3));//prints true System.out.print(date1.equals(date2));//prints false

Methode 3 van 4: De kalenderklasse gebruiken

4301351 8
4301351 8

Stap 1. Gebruik de kalender

De kalenderklasse heeft ook de methodes CompareTo, equals, after en before die op dezelfde manier werken als hierboven beschreven voor de dateklasse. Dus als de datuminformatie in een kalender wordt bewaard, is het niet nodig om de datum te extraheren om alleen een vergelijking uit te voeren.

4301351 9
4301351 9

Stap 2. Maak exemplaren van Agenda

Om de Calendar-methoden te gebruiken, hebt u enkele Calendar-instanties nodig. Gelukkig kun je gewoon de tijden halen uit de reeds gemaakte Date-instanties.

    Kalender cal1 = Kalender.getInstance(); // verklaart cal1 Kalender cal2 = Calendar.getInstance (); // verklaart cal2 Kalender cal3 = Calendar.getInstance (); // verklaart cal3 cal1.setTime (date1); // past datum toe op cal1 cal2.setTime (date2); cal3.setTime(datum3);

4301351 10
4301351 10

Stap 3. Vergelijk cal1 en cal2 met eerder

De onderstaande code zou true moeten afdrukken, aangezien cal1 vóór cal2 is.

    Systeem.uit.print(cal1.before(cal2)); // zal waar afdrukken

4301351 11
4301351 11

Stap 4. Vergelijk cal1 en cal2 met after

De onderstaande code moet false afdrukken, aangezien cal1 vóór cal2 is.

    Systeem.uit.print(cal1.after(cal2)); // drukt vals af

4301351 12
4301351 12

Stap 5. Vergelijk cal1 en cal2 met gelijken

De onderstaande code toont een voorbeeld van zowel een waar als onwaar geval. De voorwaarde is afhankelijk van de agenda-instanties die worden vergeleken. De code moet "true" en vervolgens "false" op de volgende regel afdrukken.

    Systeem.uit.println(cal1.equals(cal3)); // drukt waar af: cal1 == cal3 System.out.print (cal1.equals (cal2)); // drukt onwaar af: cal1 != cal2

Methode 4 van 4: GetTime gebruiken

4301351 13
4301351 13

Stap 1. Gebruik getTime

Het is ook mogelijk om het tijdstip van twee datums direct te vergelijken, hoewel elk van de voorgaande benaderingen waarschijnlijk beter leesbaar is en dus de voorkeur verdient. Dit zal een vergelijking zijn van twee primitieve datatypes, dus het kan gedaan worden met "", en "==".

4301351 14
4301351 14

Stap 2. Maak de oude objecten

Voordat u de datums kunt vergelijken, moet u lange gehele getallen maken met de gegevens van de eerder gemaakte Date-objecten. Gelukkig zal de methode getTime() het meeste werk voor je doen.

    lange tijd1 = getTime(datum1); // verklaart primitieve time1 van date1 long time2 = getTime(date2); // verklaart primitieve tijd2 vanaf datum2

4301351 15
4301351 15

Stap 3. Doe een minder dan vergelijking

Gebruik het kleiner dan-symbool (<) om deze twee gehele getallen te vergelijken. Aangezien tijd 1 kleiner is dan tijd 2, zou het eerste bericht moeten worden afgedrukt. De else-instructie is opgenomen voor de juiste syntaxis.

    if(time1 < time2){ System.out.println("datum1 is voor datum2"); //zal afdrukken sinds time1 <time2 } else{ System.out.println ("datum1 is niet vóór datum2"); }

4301351 16
4301351 16

Stap 4. Doe een groter dan vergelijking

Gebruik het groter dan-symbool (>) om deze twee gehele waarden te vergelijken. Aangezien tijd 1 groter is dan tijd 2, zou het eerste bericht moeten worden afgedrukt. De else-instructie is opgenomen voor de juiste syntaxis.

    if(time2 > time1){ System.out.println("datum2 is na datum1"); // zal afdrukken sinds time2 > time1 } else{ System.out.println ("datum2 is niet na datum1"); }

4301351 17
4301351 17

Stap 5. Doe een is gelijk aan vergelijking

Gebruik het symbool om te controleren op gelijkheid (==) om deze twee gehele waarden op gelijkheid te vergelijken. Aangezien tijd1 gelijk is aan tijd3, zou het eerste bericht moeten worden afgedrukt. Als het programma bij het else-statement komt, betekent dit dat de tijden niet gelijk zijn.

    if(time1 == time2){ System.out.println("de datums zijn gelijk"); } else{ System.out.println("de datums zijn niet gelijk"); //wordt afgedrukt sinds time1!= time2}

Aanbevolen: