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: Изучение Java-программирования с помощью учебников для начинающих 2024, Mei
Anonim

Daar is baie maniere om twee datums in die Java -programmeertaal te vergelyk. In rekenaars word 'n datum voorgestel deur 'n getal (die datatipe Long) in tydseenhede - dit wil sê die aantal millisekondes wat sedert 1 Januarie 1970 verloop het. In Java is Date 'n voorwerp, wat beteken dat dit verskeie metodes om vergelykings te tref. Enige metode wat gebruik word om twee datums te vergelyk, vergelyk in wese die tydseenhede van die twee datums.

Stap

Metode 1 van 4: Die gebruik van comparTo

4301351 1
4301351 1

Stap 1. Gebruik CompareTo

Die Date -voorwerp implementeer Vergelykbaar, sodat 2 datums direk met mekaar vergelyk kan word met die comparTo -metode. As beide datums dieselfde getal in tydseenhede het, gee die metode nul. As die tweede datum minder is as die eerste, word 'n waarde van minder as nul teruggestuur. As die tweede datum groter is as die eerste, gee die metode 'n waarde groter as nul. As beide datums dieselfde is, gee die metode 'n nulwaarde terug.

4301351 2
4301351 2

Stap 2. Skep verskeie Date -voorwerpe

U moet verskeie Date -voorwerpe skep voordat u dit vergelyk. Een van die maklikste maniere om dit te doen is om die SimpleDateFormat -klas te gebruik. Hierdie klas maak dit maklik om 'n invoerdatumwaarde om te skakel in 'n Date -voorwerp.

    SimpleDateFormat sdf = nuwe SimpleDateFormat ("jjjj-MM-dd"). Om 'n waarde in 'n nuwe '' Object Date 'te verklaar, gebruik dieselfde datumformaat wanneer u die datum skep. Datum datum1 = 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 Date -voorwerpe

Die volgende kode wys voorbeelde vir elke geval - minder as, gelyk en groter as.

    date1.compareTo (date2); // datum1 <datum2, gee 'n waarde minder as 0 datum2.compareTo (datum1); // datum2> datum1, gee 'n waarde van meer as 0 datum1.compareTo (datum3) terug; // date1 = date3, so dit sal 0 op die konsole lewer

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 metodes van gelyke, na en voor. As twee datums dieselfde waarde in tyd het, gee die gelyke metode waar. Die volgende voorbeeld gebruik die Date -voorwerp wat in die voorbeeld comparTo -metode geskep is.

4301351 5
4301351 5

Stap 2. Vergelyk met die voor -metode

Die volgende kode toon 'n voorbeeldgeval wat waar en onwaar teruggee. As datum1 'n datum voor datum2 is, gee die voor -metode waar. Andersins gee die voor -metode onwaar terug.

    System.out.print (datum1.voor (datum2)); // die waarde '' waar '' System.out.print (datum2.voor (datum2)) vertoon; // gee die waarde 'vals' terug

4301351 6
4301351 6

Stap 3. Vergelyk deur die na -metode te gebruik

Die volgende kode toon 'n voorbeeldgeval wat waar en onwaar teruggee. As datum2 die datum na datum1 is, gee die na -metode ware terug. Andersins sal die na -metode onwaar wees.

    System.out.print (date2.after (date1)); // vertoon die waarde '' true '' System.out.print (date1.after (date2)); // vertoon die waarde '' false ''

4301351 7
4301351 7

Stap 4. Vergelyk met gelyke metode

Die volgende kode toon 'n voorbeeldgeval wat waar en onwaar teruggee. As albei datums gelyk is, gee die gelyke metode waar. Anders gee die gelyke metode onwaar terug.

    System.out.print (date1.equals (date3)); // wys die waarde '' true '' System.out.print (date1.equals (date2)); // vertoon die waarde '' false ''

Metode 3 van 4: Gebruik Klaskalender

4301351 8
4301351 8

Stap 1. Gebruik Klaskalender

Die kalenderklas bevat ook metodes van vergelyking met, gelyk aan, na en voor, wat dieselfde werk as dié wat vroeër vir die datumklas beskryf is. As die datuminligting in 'n klaskalender gestoor word, hoef u nie die datum te onttrek net om 'n vergelyking te doen nie.

4301351 9
4301351 9

Stap 2. Skep 'n voorbeeld van Kalender

Om metodes in Klaskalender te gebruik, moet u verskeie Kalender -gevalle skep. Gelukkig kan u die waardes van 'n voorheen geskepte Date -instansie gebruik.

    Kalender cal1 = Calendar.getInstance (); // verklaar cal1 Kalender cal2 = Calendar.getInstance (); // verklaar cal2 Kalender cal3 = Calendar.getInstance (); // verklaar cal3 cal1.setTime (datum1); // sit die datum in cal1 cal2.setTime (date2); cal3.setTime (datum3);

4301351 10
4301351 10

Stap 3. Vergelyk cal1 en cal2 met behulp van die voor -metode

Die volgende kode gee die waarde van tr

    System.out.print (cal1.before (cal2)); // sal waarde '' waar '' teruggee

4301351 11
4301351 11

Stap 4. Vergelyk cal1 en cal2 deur die na -metode te gebruik

Die volgende kode sal onwaar wees, want cal1 is die datum voor cal2.

    System.out.print (cal1.after (cal2)); // gee die waarde 'vals' terug

4301351 12
4301351 12

Stap 5. Vergelyk cal1 en cal2 deur die gelyke metode te gebruik

Die volgende kode toon 'n voorbeeld van 'n voorbeeld wat waar en onwaar teruggee. Die toestand hang af van die kalender -instansie wat vergelyk word. Die volgende kode gee die waarde "waar" en dan "onwaar" op die volgende reël.

    System.out.println (cal1.equals (cal3)); // gee die waarde '' waar '' terug: cal1 == cal3 System.out.print (cal1.equals (cal2)); // gee die waarde '' false '' terug: cal1! = cal2

Metode 4 van 4: Die gebruik van getTime

4301351 13
4301351 13

Stap 1. Gebruik getTime

U kan ook die tydseenheidwaardes van twee datums direk vergelyk, hoewel die vorige twee metodes makliker leesbaar en verkieslik is. Op hierdie manier vergelyk u twee primitiewe datatipes, sodat u die operande "" en "==" kan gebruik.

4301351 14
4301351 14

Stap 2. Skep 'n tydsvoorwerp in langgetalformaat

Voordat u datums kan vergelyk, moet u 'n langgetalwaarde uit die voorheen geskepte Date -voorwerp skep. Gelukkig sal die getTime () -metode dit vir u doen.

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

4301351 15
4301351 15

Stap 3. Doen 'n minder as vergelyking

Gebruik die operand van minder as (<) om hierdie twee heelgetalwaardes te vergelyk. Aangesien tyd 1 minder is as tyd2, sal die eerste boodskap verskyn. Die anders -stelling is ingesluit om die sintaksis te voltooi.

    if (time1 <time2) {System.out.println ("datum1 is die datum voor datum2"); // sal verskyn omdat time1 <time2} anders {System.out.println ("datum1 is nie 'n datum voor datum2"); }

4301351 16
4301351 16

Stap 4. Doen 'n groter as vergelyking

Gebruik die groter as (>) operand om hierdie twee heelgetalwaardes te vergelyk. Omdat tyd1 groter is as tyd2, sal die eerste boodskap verskyn. Die anders -stelling is ingesluit om die sintaksis te voltooi.

    as (tyd2> tyd1) {System.out.println ("datum2 is die datum na datum1"); // sal wys omdat time2> time1} anders {System.out.println ("date2 is nie die datum na datum1"); }

4301351 17
4301351 17

Stap 5. Doen 'n gelyke vergelyking

Gebruik die operandfunksie om die gelyke waardes (==) te kontroleer om hierdie twee heelgetalle te vergelyk. Aangesien tyd 1 gelyk is aan tyd3, sal die eerste boodskap verskyn. As die programvloei in die anders -stelling ingaan, beteken dit dat die twee kere nie dieselfde waarde het nie.

    if (time1 == time2) {System.out.println ("beide datums is dieselfde"); } anders {System.out.println ("Die eerste is nie dieselfde as die tweede nie"); // sal wys omdat time1! = time2}

Aanbeveel: