Jämför datum i Java

Författare: Roger Morrison
Skapelsedatum: 24 September 2021
Uppdatera Datum: 1 Juli 2024
Anonim
📈 The Intelligent Investor by Benjamin Graham AudioBook Full Part 2 of 2
Video: 📈 The Intelligent Investor by Benjamin Graham AudioBook Full Part 2 of 2

Innehåll

Det finns flera sätt att jämföra datum i Java. Internt representeras ett datum som en (lång) tidpunkt - antalet millisekunder som har passerat sedan 1 januari 1970. I Java är datum datumobjektet, vilket innebär att det innehåller flera metoder för att jämföra datum. Varje metod för att jämföra två datum kommer i grunden att jämföra den förflutna tiden för båda datumen.

Att gå

Metod 1 av 4: Använd kommandot "jämför till"

  1. Använd CompareTo. Datum implementerar ComparableDate> och så kan två datum direkt jämföras med varandra med jämförelsemetoden. Om datumen anger samma tidpunkt kommer metoden att returnera noll. Om datumet som jämförs ligger före datumargumentet returneras ett negativt värde. Om datumet som jämförs är ett senare datum än datumargumentet returneras ett positivt värde. Om datumen är desamma returneras en noll.
  2. Skapa datumobjekten. Du måste skapa varje datumobjekt innan du kan börja jämföra dem. Ett sätt att göra detta är att tillämpa klassen SimpleDateFormat. Detta gör att du enkelt kan ange datum i datumobjekt.

      SimpleDateFormat sdf = ny SimpleDateFormat ("åååå-MM-dd"); // För att deklarera värden i nya datumobjekt.Använd samma datumformat när du skapar datum Date date1 = sdf.parse ("1995-02-23"); // date1 är 23 februari 1995 Date date2 = sdf.parse ("2001-10-31"); // date2 är den 31 oktober 2001 Date date3 = sdf.parse ("1995-02-23"); // date3 är 23 februari 1995

  3. Jämför datumobjekten. Nedan visas varje fall - mindre än, lika med och större än.

      date1.compareTo (date2); // date1 date2, less than 0 date2.compareTo (date1); // date2> date1, returnerar större än 0 date1.compareTo (date3); // date1 = date3, returnerar 0

Metod 2 av 4: Använd metoderna "lika, efter och före"

  1. Använd lika, efter och före. Datum kan jämföras med varandra med lika, efter och före metoder. Om två datum indikerar samma tid, returnerar metoden "lika". I exemplen används de tidigare skapade datumen via jämförelsemetoden.
  2. Jämför med före-metoden. Koden nedan visar ett fall av sant och falskt. Om datum1 är tidigare än datum2 är resultatet sant. Om inte, returnerar falskt innan.

      System.out.print (date1.before (date2)); // skriv ut System.out.print (date2.before (date2)); // skriv ut falskt

  3. Jämför detta med eftermetoden. Koden nedan visar ett fall av sant och falskt. Om date2 är senare än date1, sedan returnerar true. Om inte, efter returnerar falskt.

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

  4. Jämför med likhetsmetoden. Koden nedan visar ett fall av sant och falskt. Om datumen är desamma returneras lika med sant. Om inte, motsvarar returnerar falskt.

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

Metod 3 av 4: Använda kalenderklassen

  1. Använd klassen Kalender. Kalenderklassen har också jämförelsenTo, lika, efter och före metoder, som fungerar på samma sätt som beskrivs ovan för datumklassen. Så om datumdata hålls i en kalender behöver du inte extrahera "datum", bara för att jämföra två datum.
  2. Skapa instans av kalender. För att använda kalendermetoderna behöver du några kalenderinstanser. Lyckligtvis kan du använda tiden som genereras av datuminstanserna.

      Kalender cal1 = Calendar.getInstance (); // förklarar cal1 Kalender cal2 = Calendar.getInstance (); // förklarar cal2 Kalender cal3 = Calendar.getInstance (); // förklarar cal3 cal1.setTime (date1); // tillämpar datum för cal1 cal2.setTime (date2); cal3.setTime (datum3);

  3. Jämför cal1 och cal2 med tidigare. Koden nedan returnerar true eftersom cal1 är tidigare än cal2.

      System.out.print (cal1.before (cal2)); // tryck sant

  4. Jämför cal1 och cal2 med efter. Koden nedan returnerar falsk, eftersom cal1 är tidigare än cal2.

      System.out.print (cal1.after (cal2)); // skriv ut falskt

  5. Jämför cal1 och cal2 med lika. Koden nedan visar ett exempel på både true och false. Villkoret beror på vilka kalenderinstanser som jämförs. Koden nedan returnerar "true" och sedan "false" på nästa rad.

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

Metod 4 av 4: Använd "getTime" -metoden

  1. Använd getTime. Det är också möjligt att direkt jämföra två tidpunkter, även om någon av de föregående metoderna sannolikt ger mer läsbara resultat och är därför föredragen. Detta är en jämförelse av två primitiva datatyper, så kan göras med "", ">" och "==".
  2. Skapa "långa" objekt. Innan du kan jämföra datum måste du skapa långa heltal från data från de tidigare skapade Date-objekten. Lyckligtvis kommer metoden getTime () att göra det mesta för dig.

      lång tid1 = getTime (datum1); // förklarar primitiv tid1 av datum1 lång tid2 = getTime (datum2); // förklarar primitiv tid2 av datum2

  3. Använd en "mindre än" ekvation. Använd symbolen "mindre än" () för att jämföra dessa två heltal. Eftersom tid1 är mindre än tid2 bör det första meddelandet skrivas ut på skärmen. Det andra uttalandet ingår för rätt syntax.

      if (time1 time2) {System.out.println ("date1 är tidigare än date2"); // skriv ut eftersom tid1 tid2} annat {System.out.println ("datum1 är senare än eller lika med datum2"); }

  4. Gör en jämförelse "mer än". Använd symbolen "större än" (>) för att jämföra dessa två heltal. Eftersom tid1 är större än tid2 skrivs det första meddelandet ut på skärmen. Det andra uttalandet ingår för korrekt syntax.

      if (time2> time1) {System.out.println ("date2 kommer efter datum1"); // skriv ut eftersom tid2> tid1} annars {System.out.println ("datum2 är tidigare än eller lika med datum1"); }

  5. Gör en jämförelse "lika med". Använd symbolen (==) för att jämföra dessa två heltal. Eftersom tid1 är lika med tid3 bör det första meddelandet skrivas ut. Om programmet kommer till det andra uttalandet betyder det att tiderna inte är desamma.

      if (time1 == time2) {System.out.println ("Datumen är lika"); } annat {System.out.println ("Datumen är inte lika"); // skriv ut eftersom tid1! = tid2}