Võrrelge Java keeles kuupäevi

Autor: Roger Morrison
Loomise Kuupäev: 24 September 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Võrrelge Java keeles kuupäevi - Nõuandeid
Võrrelge Java keeles kuupäevi - Nõuandeid

Sisu

Kuupäevade võrdlemiseks Java-s on mitu võimalust. Sisemiselt on kuupäev kujutatud (pika) ajahetkena - millisekundite arv, mis on möödunud 1. jaanuarist 1970. Javas on kuupäev objekt Date, mis tähendab, et see sisaldab kuupäevade võrdlemiseks mitmeid meetodeid. Mis tahes meetod kahe kuupäeva võrdlemiseks võrdleb põhimõtteliselt mõlema kuupäeva kulunud aega.

Astuda

Meetod 1/4: käsu "võrdleTo" kasutamine

  1. Kasutage võrdlust. Kuupäev rakendab ComparableDate> ja nii saab võrdlusmeetodi abil kahte kuupäeva omavahel otseselt võrrelda. Kui kuupäevad tähistavad sama ajahetke, tagastab meetod nulli. Kui võrreldav kuupäev on enne kuupäeva argumenti, tagastatakse negatiivne väärtus. Kui võrreldav kuupäev on hilisem kui argumendi kuupäev, tagastatakse positiivne väärtus. Kui kuupäevad on samad, tagastatakse null.
  2. Looge objektid Kuupäev. Enne kui hakkate neid võrdlema, peate looma iga kuupäeva objekti. Üks viis selleks on klassi SimpleDateFormat rakendamine. See võimaldab teil kuupäevad objektidesse Kuupäev hõlpsalt sisestada.

      SimpleDateFormat sdf = uus SimpleDateFormat ("aaaa-kk-pp"); // Väärtuste deklareerimiseks uutes kuupäeva objektides.Kasutage kuupäevade loomisel sama kuupäevavormingut Date date1 = sdf.parse ("1995-02-23"); // kuupäev1 on 23. veebruar 1995 Kuupäev kuupäev2 = sdf.parse ("2001-10-31"); // kuupäev2 on 31. oktoober 2001 Kuupäev kuupäev3 = sdf.parse ("1995-02-23"); // kuupäev3 on 23. veebruar 1995

  3. Võrrelge kuupäevaobjekte. Allpool on toodud kõik juhtumid - väiksem kui, võrdne ja suurem kui.

      date1.compareTo (date2); // date1 date2, vähem kui 0 date2.compareTo (date1); // date2> date1, tagastab suurema kui 0 date1.compareTo (date3); // date1 = date3, tagastab 0

2. meetod 4-st: meetodite "võrdub, pärast ja enne" kasutamine

  1. Kasutage võrdseid, pärast ja enne. Kuupäevi saab omavahel võrrelda meetodite võrdsed, pärast ja enne. Kui kaks kuupäeva tähistavad sama kellaaega, tagastatakse meetodi „Võrdne” väärtuseks „tõene”. Näidetes kasutatakse varem loodud kuupäevi võrdlusmeetodi abil.
  2. Võrrelge meetodit enne. Allolev kood näitab tõese ja vale juhtumit. Kui date1 on varasem kui date2, on tulemus tõene. Kui ei, siis enne tagastab vale.

      System.out.print (kuupäev1.before (kuupäev2)); // print true system.out.print (kuupäev2.before (kuupäev2)); // print vale

  3. Võrrelge seda järgneva meetodiga. Allolev kood näitab tõese ja vale juhtumit. Kui date2 on hilisem kui date1, siis pärast tagastab true. Kui ei, siis pärast tagastab vale.

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

  4. Võrdlege võrdse meetodi abil. Allolev kood näitab tõese ja vale juhtumit. Kui kuupäevad on samad, tagastab võrdne väärtus true. Kui ei, tagastab võrdne vale.

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

Meetod 3/4: klassi Kalender kasutamine

  1. Kasutage klassi Kalender. Klassil Kalender on ka meetodid võrdlus, võrdub, pärast ja enne, mis toimivad samamoodi nagu eespool kuupäevaklassi puhul kirjeldatud. Nii et kui kuupäeva andmeid hoitakse kalendris, pole "kuupäeva" väljavõtmiseks vaja ainult kahe kuupäeva võrdlemist.
  2. Looge Kalendri eksemplar. Kalendri meetodite kasutamiseks vajate mõnda Kalendri eksemplari. Õnneks saate kasutada kuupäeva eksemplaride genereeritud aega.

      Kalender cal1 = Calendar.getInstance (); // deklareerib cal1 kalendri cal2 = Calendar.getInstance (); // deklareerib cal2 kalendri cal3 = Calendar.getInstance (); // deklareerib cal3 cal1.setTime (kuupäev1); // rakendab kuupäeva cal1 cal2.setTime (date2); cal3.setTime (kuupäev3);

  3. Võrdle funktsioone cal1 ja cal2 enne kasutamist. Allpool olev kood tagastab tõene, kuna cal1 on varasem kui cal2.

      System.out.print (cal1.before (cal2)); // print true

  4. Võrdle funktsioone cal1 ja cal2 pärast. Allolev kood tagastab vale, kuna cal1 on varasem kui cal2.

      System.out.print (cal1.after (cal2)); // print vale

  5. Võrdle cal1 ja cal2, kasutades võrdseid. Allolev kood näitab nii tõese kui ka vale näidet. Tingimus sõltub võrreldavatest kalendri eksemplaridest. Allpool olev kood tagastab järgmisel real "true" ja seejärel "false".

      System.out.println (cal1.equals (cal3)); // print true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // print vale: cal1! = cal2

4. meetod 4-st: meetodi "getTime" kasutamine

  1. Kasutage getTime'i. Samuti on võimalik kahte ajapunkti otse võrrelda, ehkki ükskõik milline ülaltoodud lähenemisviis annab tõenäoliselt loetavamaid tulemusi ja on seetõttu eelistatud. See on kahe primitiivse andmetüübi võrdlus, nii et seda saab teha "", ">" ja "==".
  2. Looge "pika" aja objektid. Enne kuupäevade võrdlemist peate eelnevalt loodud kuupäeva objektide andmetest looma pikad täisarvud. Õnneks teeb suurema osa tööst teie jaoks töö getTime ().

      pikk aeg1 = getTime (kuupäev1); // deklareerib kuupäeva1 primitiivse kellaaja1 pikk aeg2 = getTime (kuupäev2); // kuulutab kuupäeva2 primitiivse kellaaja2

  3. Kasutage võrrandit "vähem kui". Nende kahe täisarvu võrdlemiseks kasutage sümbolit "vähem kui" (). Kuna aeg1 on väiksem kui aeg2, tuleks esimene teade ekraanile printida. Õige süntaksi jaoks on lisatud lause lause.

      if (aeg1 aeg2) {System.out.println ("kuupäev1 on varasem kui kuupäev2"); // print, sest aeg1 aeg2} muu {System.out.println ("kuupäev1 on hilisem või võrdne kuupäev2"); }

  4. Tehke võrdlus "suurem kui". Nende kahe täisarvu võrdlemiseks kasutage sümbolit "suurem kui" (>). Kuna aeg1 on suurem kui aeg2, prinditakse ekraanile esimene teade. Õige süntaksi jaoks on lisatud lause lause.

      if (aeg2> kell1) {System.out.println ("kuupäev2 tuleb pärast kuupäeva1"); // print, sest aeg2> aeg1} muu {System.out.println ("kuupäev2 on varasem või võrdne kuupäevaga1"); }

  5. Tehke võrdlus võrdsega. Nende kahe täisarvu võrdlemiseks kasutage sümbolit (==). Kuna aeg1 võrdub kellaaeg3, tuleks esimene teade printida. Kui programm jõuab muu lause juurde, tähendab see, et ajad pole samad.

      if (aeg1 == aeg2) {System.out.println ("Kuupäevad on võrdsed"); } else {System.out.println ("Kuupäevad pole võrdsed"); // print, sest aeg1! = aeg2}