4 maniere om twee datums in Java te vergelyk

INHOUDSOPGAWE:

4 maniere om twee datums in Java te vergelyk
4 maniere om twee datums in Java te vergelyk

Video: 4 maniere om twee datums in Java te vergelyk

Video: 4 maniere om twee datums in Java te vergelyk
Video: Inkscape: How to Change Default Settings 2024, April
Anonim

Daar is verskillende maniere om Java -datums te vergelyk. Intern word 'n datum voorgestel as 'n (lang) tydstip - die aantal millisekondes wat sedert 1 Januarie 1970 verstryk het. In Java is Date 'n voorwerp, wat beteken dat dit verskeie vergelykingsmetodes insluit. Elke metode om twee datums te vergelyk, vergelyk die datums se tye in wese.

Stappe

Metode 1 van 4: Die gebruik van comparTo

4301351 1
4301351 1

Stap 1. Gebruik CompareTo

Datum implementeer Vergelykbaar en dus kan twee datums direk met die comparTo -metode vergelyk word. As die datums vir dieselfde tyd is, gee die metode nul. As die datum wat vergelyk word, voor die datumargument is, word 'n waarde van minder as nul teruggegee. As die datum wat vergelyk word, na die datumargument is, word 'n waarde groter as nul teruggegee. As die datums gelyk is, word 'n waarde van 0 teruggegee.

4301351 2
4301351 2

Stap 2. Skep die datumvoorwerpe

U moet elke datumvoorwerp skep voordat u dit kan begin vergelyk. Een manier om dit te doen is om die SimpleDateFormat -klas te gebruik. Dit maak dit maklik om datumwaardes in datumobjekte in te voer.

    SimpleDateFormat sdf = nuwe SimpleDateFormat ("jjjj-MM-dd"); // Vir die verklaring van waardes in nuwe datumvoorwerpe. gebruik dieselfde datumformaat wanneer u datums skep Date date1 = sdf.parse ("1995-02-23"); // datum1 is 23 Februarie 1995 Datum datum2 = sdf.parse ("2001-10-31"); // datum2 is 31 Oktober 2001 Datum datum3 = sdf.parse ("1995-02-23"); // datum3 is 23 Februarie 1995

4301351 3
4301351 3

Stap 3. Vergelyk die datumvoorwerpe

Die onderstaande kode wys u elke geval - minder as, gelyk en groter as.

    date1.compareTo (date2); // datum1 <datum2, gee minder as 0 datum2.compareTo (datum1); // datum2> datum1, gee meer as 0 datum1.compareTo (datum3); // date1 = date3, so sal 0 na die konsole druk

Metode 2 van 4: Gebruik gelyke, na en voor

4301351 4
4301351 4

Stap 1. Gebruik gelykes, na en voor

Datums kan vergelyk word met die gelykes, na en voor metodes. As twee datums vir dieselfde tydstip is, sal die gelyke metode waar wees. Die voorbeelde gebruik voorheen geskepte datums uit die comparTo -metode.

4301351 5
4301351 5

Stap 2. Vergelyk met behulp van die voor -metode

Die onderstaande kode toon 'n ware en onwaar geval. As datum1 voor datum2 is, voor opbrengs waar. As dit nie die geval is nie, is die opbrengs vals.

    System.out.print (datum1.voor (datum2)); // druk ware System.out.print (datum2.voor (datum2)) af; // druk vals af

4301351 6
4301351 6

Stap 3. Vergelyk deur die na -metode te gebruik

Die onderstaande kode toon 'n ware en onwaar geval. As datum2 na datum 1 is, na opbrengste waar. As dit nie die geval is nie, is die opbrengs vals.

    System.out.print (datum2.after (datum1)); // druk ware System.out.print (datum1.after (datum2)); // druk vals af

4301351 7
4301351 7

Stap 4. Vergelyk deur die gelyke metode te gebruik

Die onderstaande kode toon 'n ware en onwaar geval. As die datums gelyk is, gee gelyke opbrengs waar. As dit nie die geval is nie, gee gelyke terug as onwaar.

    System.out.print (date1.equals (date3)); // druk ware System.out.print (date1.equals (date2)); // druk vals af

Metode 3 van 4: Gebruik die kalenderklas

4301351 8
4301351 8

Stap 1. Gebruik die kalender

Die kalenderklas het ook vergelykbare To, gelyke, na en voor -metodes wat op dieselfde manier werk as hierbo beskryf vir die datumklas. As die datuminligting in 'n kalender gehou word, hoef u dus nie die datum te onttrek net om 'n vergelyking te doen nie.

4301351 9
4301351 9

Stap 2. Skep gevalle van Kalender

Om die kalendermetodes te gebruik, benodig u 'n paar kalender -gevalle. Gelukkig kan u net die tye uit die reeds geskepte Date -gevalle haal.

    Kalender cal1 = Calendar.getInstance (); // verklaar cal1 Kalender cal2 = Calendar.getInstance (); // verklaar cal2 Kalender cal3 = Calendar.getInstance (); // verklaar cal3 cal1.setTime (datum1); // pas datum toe op cal1 cal2.setTime (datum2); cal3.setTime (datum3);

4301351 10
4301351 10

Stap 3. Vergelyk cal1 en cal2 met behulp van voor

Die onderstaande kode moet waar druk, aangesien cal1 voor cal2 is.

    System.out.print (cal1.before (cal2)); // sal waar druk

4301351 11
4301351 11

Stap 4. Vergelyk cal1 en cal2 met behulp van after

Die onderstaande kode moet onwaar druk, aangesien cal1 voor cal2 is.

    System.out.print (cal1.after (cal2)); // druk vals af

4301351 12
4301351 12

Stap 5. Vergelyk cal1 en cal2 deur gelyke te gebruik

Die kode hieronder toon 'n voorbeeld van 'n ware en onwaar geval. Die toestand hang af van die kalendergevalle wat vergelyk word. Die kode moet "waar" druk, dan "onwaar" op die volgende reël.

    System.out.println (cal1.equals (cal3)); // druk waar: cal1 == cal3 System.out.print (cal1.equals (cal2)); // druk vals af: cal1! = cal2

Metode 4 van 4: Die gebruik van getTime

4301351 13
4301351 13

Stap 1. Gebruik getTime

Dit is ook moontlik om die tydsduur van twee datums direk te vergelyk, hoewel enige van die vorige benaderings waarskynlik meer leesbaar en dus beter is. Dit sal 'n vergelyking van twee primitiewe datatipes wees, sodat dit gedoen kan word met "" en "==".

4301351 14
4301351 14

Stap 2. Skep die lang tyd voorwerpe

Voordat u die datums kan vergelyk, moet u lang heelgetalle skep met die data van die voorheen geskepte Date -voorwerpe. Gelukkig sal die getTime () -metode die meeste werk vir u doen.

    lang tyd1 = getTime (datum1); // verklaar primitiewe tyd1 vanaf datum1 lang tyd2 = getTime (datum2); // verklaar primitiewe tyd2 vanaf datum2

4301351 15
4301351 15

Stap 3. Doen 'n minder as vergelyking

Gebruik die minder as simbool (<) om hierdie twee heelgetalwaardes te vergelyk. Aangesien tyd 1 minder is as tyd 2, moet die eerste boodskap gedruk word. Die ander stelling is ingesluit vir die regte sintaksis.

    as (time1 <time2) {System.out.println ("datum1 is voor datum2"); // sal sedert tyd1 <tyd2} anders druk {System.out.println ("datum1 is nie voor datum2"); }

4301351 16
4301351 16

Stap 4. Doen 'n groter as vergelyking

Gebruik die groter as simbool (>) om hierdie twee heelgetalwaardes te vergelyk. Aangesien tyd 1 groter is as tyd 2, moet die eerste boodskap gedruk word. Die ander stelling is ingesluit vir die regte sintaksis.

    as (tyd2> tyd1) {System.out.println ("datum2 is na datum1"); // sal druk sedert tyd2> tyd1} anders {System.out.println ("datum2 is nie na datum1"); }

4301351 17
4301351 17

Stap 5. Doen 'n gelyke vergelyking

Gebruik die simbool om te kyk na gelykheid (==) om hierdie twee heelgetalwaardes vir gelykheid te vergelyk. Aangesien tyd 1 gelyk is aan tyd3, moet die eerste boodskap gedruk word. As die program by die ander stelling kom, beteken dit dat die tye nie gelyk is nie.

    if (time1 == time2) {System.out.println ("die datums is gelyk"); } anders {System.out.println ("die datums is nie gelyk nie"); // sal sedert tyd1 druk! = tyd2}

Aanbeveel: