gushelom.ru

Hur man jämför datum i Java

Det finns flera sätt att jämföra två datum i Java-språket. Inom programmet är ett datum representerat i form av ett heltal (långt) i förhållande till en viss tidpunkt - antalet millisekunder som har gått sedan 1 januari 1970. På detta språk "datum" Det är ett objekt och innehåller därför en mängd olika jämförelsemetoder. I grund och botten gör någon metod för att jämföra två datum faktiskt en jämförelse mellan två tal som representerar de tidpunkter som datumen hänvisar till.

Metod 1

Använd metoden "compareTo"
Bildnamn 4301351 1
1
Använd metoden "compareTo". Klassen "datum" implementerar gränssnittet "jämförbar"därför kan två föremål av denna typ (dvs. två datum) jämföras direkt med metoden "compareTo". Om datumen är identiska, dvs de hänvisar till samma ögonblick, kommer metoden att returnera värdet noll (0). Om objektet "datum" som påstår metoden "compareTo" representerar ett datum före det som används som argument för metoden, kommer jämförelsen att returnera ett numeriskt värde mindre än noll. Tvärtom, om objektet "datum" som påstår metoden "compareTo" representerar ett datum senare än det som används som argument, kommer jämförelsen att returnera ett numeriskt värde större än noll. Som redan nämnts, om de två jämförda datumen är lika, kommer det numeriska nollvärdet att returneras.
  • Bildnamn 4301351 2
    2
    Skapa två objekt "datum". Det första steget, innan man kan göra jämförelsen, består i att skapa de två objekten som innehåller de datum som ska jämföras. Ett av sätten att göra detta är att använda klassen "Simple". Det senare gör att du kan infoga ett datum inom ett typobjekt "datum" på ett enkelt och snabbt sätt.
    SimpleDateFormat sdf = ny SimpleDateFormat ("yyyy-MM-dd") - // Deklaration av objektet som representerar formatet för det datum vi ska använda i jämförelsen. När vi ska ange värdena måste vi respektera detta formatDatum date1 = sdf.parse ("1995/02/23") - // date1 representerar 23 februari 1995Datum date2 = sdf.parse ("2001-10-31") - // datum2 representerar 31 oktober 2001Datum3 = sdf.parse ("1995/02/23") - // datum3 representerar 23 februari 1995
  • Bildnamn 4301351 3
    3
    Jämför objekt av typ "datum". Följande kod visar resultaten vi kommer att få i alla möjliga fall: om det första datumet är mindre än det andra, när vi har två lika datum, och när det första datumet är större än det andra.
    date1.compareTo (date2) - // date1 < date2 vi får ett värde mindre än 0date2.compareTo (date1) - // date2 > date1 vi kommer att få ett värde större än 0date1.compareTo (date3) - // date1 = date3 vi kommer att få exakt 0
  • Metod 2

    Använd metoderna "lika", "efter" och "före"
    Bildnamn 4301351 4
    1
    Använd jämförelsemetoderna "är lika med", "efter" och "före". Klassens föremål "datum" kan jämföras direkt med metoderna "är lika med", "efter" och "före". Om de två jämförda datumen hänvisar till samma ögonblick, så är metoden "är lika med" kommer att returnera det booleska värdet "falsk". För att avslöja användningen av dessa metoder använder vi samma provdatum som används för att beskriva metodens beteende "compareTo".
  • Bildnamn 4301351 5
    2
    Vi jämför värdena med metoden "före". Följande kod visar båda fallen, det vill säga när det booleska värdet returneras "falsk" och när det är tillbaka "falsk". om "datum1" representerar ett datum före det datum som lagrats i objektet "datum2", metoden "före" kommer att returnera värdet "falsk". Annars kommer vi att få det booleska värdet "falsk".
    System.out.print (date1.before (date2)) - // värdet kommer att skrivas ut "falsk"System.out.print (date2.before (date2)) - // värdet kommer att skrivas ut "falsk"
  • Bildtitel 4301351 6
    3
    Vi jämför värdena med metoden "efter". Följande kod visar båda fallen, det vill säga när det booleska värdet returneras "falsk" och när det är tillbaka "falsk". om "datum2" representerar en senare datum än den som lagras i objektet "datum1", metoden "efter" kommer att returnera värdet "falsk". Annars kommer vi att få det booleska värdet "falsk".
    System.out.print (datum2.after (datum1)) - // värdet kommer att skrivas ut "falsk"System.out.print (datum1.after (datum2)) - // värdet kommer att skrivas ut "falsk"
  • Bildnamn 4301351 7
    4
    Vi jämför värdena med metoden "är lika med". Följande kod visar båda fallen, det vill säga när det booleska värdet returneras "falsk" och när det är tillbaka "falsk". Om båda objekten "datum" av jämförelsen representerar samma datum, metoden "är lika med" kommer att returnera värdet "falsk". Annars kommer vi att få det booleska värdet "falsk".
    System.out.print (date1.equals (date3)) - // värdet kommer att skrivas ut "falsk"System.out.print (date1.equals (date2)) - // värdet kommer att skrivas ut "falsk"
  • Metod 3

    Använd klassen "kalender"
    Bildnamn 4301351 8
    1
    Använd klassen "kalender". Den senare är också utrustad med jämförelsemetoder "compareTo": "är lika med", "efter" och "före", som fungerar på exakt samma sätt som beskrivits för klassen "datum". Om datumen att jämföra lagras i ett typobjekt "kalender", det finns ingen anledning att extrahera dem för att göra jämförelsen, använd helt enkelt objektets metoder.
  • Bildnamn 4301351 9
    2
    Skapa instanser av klassen "kalender". För att kunna använda klassens metoder "kalender" Vi måste först skapa instanser av detta element. Lyckligtvis kan du utnyttja de datum som vi redan har inkluderat i klasserna "datum".
    Kalender Cal1 Calendar.getInstance = () - // objektdeklaration cal1Calendar CAL2 = Calendar.getInstance () - // objektdeklaration cal2Calendar Calendar.getInstance CAL 3 = () - cal3cal1.setTime // objektdeklaration (datum1 ) - // infoga data i objektet cal1cal2.setTime (date2) - // infoga data inom objektet cal2cal3.setTime (date3) - // infoga data inom objektet CAL 3
  • Bildtitel 4301351 10
    3
    Vi jämför objekten "Cal1" och "CAL2" använda metoden "före". Följande kod kommer att skriva ut det booleska värdet på skärmen "falsk", om datumet i "Cal1" det är tidigare än det som lagras i "CAL2".
    System.out.print (cal1.before (cal2)) - // värdet kommer att visas på skärmen "falsk"
  • Bildnamn 4301351 11
    4
    Vi jämför objekten "Cal1" och "CAL2" använda metoden "efter". Följande kod kommer att skriva ut det booleska värdet på skärmen "falsk", om datumet i "Cal1" det är tidigare än det som lagras i "CAL2".
    System.out.print (cal1.after (cal2)) - // värdet kommer att visas på skärmen "falsk"
  • Bildnamn 4301351 12
    5
    Vi jämför objekten "Cal1" och "CAL2" använda metoden "är lika med". Följande kod visar båda fallen, det vill säga när det booleska värdet returneras "falsk" och när det kommer att returneras "falsk". Villkoren för detta förekommer självklart beroende av det värde som antas av klassinstanserna "kalender" som vi kommer att jämföra. Följande provkod ska skriva ut värdet på skärmen "falsk", följt av värdet "falsk" på nästa rad.
    System.out.println (cal1.equals (cal3)) - // värdet sant visas eftersom cal1 är lika med cal3System.out.print (cal1.equals (cal2)) // värdet falskt visas sedan cal1 skiljer sig från cal2
  • Metod 4

    Använd metoden "getTime"
    Bildnamn 4301351 13
    1
    Använd metoden "getTime". I Java kan du direkt jämföra två datum efter omvandling av det relativa värdet till en primitiv datatyp (det vill säga språkens standard datatyper). De metoder som beskrivs ovan är emellertid föredragna eftersom de är mer läsbara och därför kan vara mer lämpade för en arbetsmiljö där källkoden måste hanteras av olika personer. Eftersom jämförelsen kommer att äga rum mellan primitiva data kan den utföras med hjälp av jämförelseoperatörerna direkt "<", ">" och "==".
  • Bildnamn 4301351 14
    2
    Vi skapar objekt av typen "lång" som kommer att innehålla datum för att jämföra. För att göra detta måste vi omvandla det värde som lagras i sådana objekt "datum" används i företräde i ett heltal av typ "lång". Lyckligtvis finns det en metod som utför denna omvandling enkelt och snabbt: "getTime ()".
    long time1 = getTime (date1) - // förklara det primitive objektet "time1" som vi tilldelar värdet av "datum1"long time2 = getTime (date2) - // vi förklarar det primitive objektet "time2" som vi tilldelar värdet av "datum2"long time3 = getTime (date3) - // förklara det primitive objektet "tid3" som vi tilldelar värdet av "date3"
  • Bildnamn 4301351 15
    3
    Låt oss kolla om det första datumet är mindre än det andra. För att göra detta använder vi jämförelseoperatören "<" att jämföra de två heltalvärdena som matchar datumen "datum1" och "datum2". Eftersom numret lagrats i objektet "time1" är mindre än det i objektet "time2" meddelandet som finns i den första grenen av den logiska strukturen kommer att skrivas ut "If-else". Kodblocket hänför sig till instruktionen "annars" har inkluderats för att respektera syntaxens korrekthet.
    if (time1 < Tid 2) {System.out.println ("datum1 är tidigare än datum2") - // detta meddelande kommer att skrivas ut eftersom faktiskt time1 är mindre än time2} else {System.out.println ("date1 är inte tidigare än datum2") -}
  • Bildnamn 4301351 16
    4
    Låt oss kolla om det första datumet är större än det andra. För att göra detta använder vi jämförelseoperatören ">" att jämföra de två heltalvärdena som matchar datumen "datum1" och "datum2". Eftersom numret lagrats i objektet "time1" är mindre än det i objektet "time2" meddelandet som finns i den första grenen av den logiska strukturen kommer att skrivas ut "If-else". Kodblocket hänför sig till instruktionen "annars" har inkluderats för att respektera syntaxens korrekthet.
    if (time2 > Inspelningstid1) {System.out.println ("Date2 är efter datum1") - // detta meddelande kommer att skrivas ut eftersom faktiskt time2 är större än time1} else {System.out.println ("datum2 är inte senare än datum1") -}
  • Bildnamn 4301351 17
    5
    Låt oss kolla om båda datumen är desamma. För att göra detta använder vi jämförelseoperatören "==" att jämföra de två heltalvärdena som matchar datumen "datum1" och "datum2". Eftersom numret lagrats i objektet "time1" det är detsamma som det i objektet "tid3" meddelandet som finns i den första grenen av den logiska strukturen kommer att skrivas ut "If-else". Om programmet skulle skriva ut det andra meddelandet på skärmen (det vill säga det som ingår i anvisningarna "annars") betyder att de två datumen jämförs inte är desamma.
    om (time1 == time2) {System.out.println ("Datumen är desamma") -} else {System.out.println ("Datumen är olika") - // detta meddelande kommer att skrivas ut eftersom värdet av tid1 faktiskt skiljer sig från tiden2}
  • Dela på sociala nätverk:

    Relaterade
    Hur man citerar en webbplats utan författareHur man citerar en webbplats utan författare
    Hur man beräknar åldern i ExcelHur man beräknar åldern i Excel
    Så här ändrar du datum och tid för en Android-mobilSå här ändrar du datum och tid för en Android-mobil
    Så här ändrar du datumformatet i Microsoft ExcelSå här ändrar du datumformatet i Microsoft Excel
    Så här ändrar du filens skapande och modifieringsdatumSå här ändrar du filens skapande och modifieringsdatum
    Hur man ringer en metod i JavaHur man ringer en metod i Java
    Så här kontrollerar du datum och tid i LinuxSå här kontrollerar du datum och tid i Linux
    Hur man skapar en formel för att öka en datum för månadenHur man skapar en formel för att öka en datum för månaden
    Så här gör du en sökning efter datum i GmailSå här gör du en sökning efter datum i Gmail
    Hur man deltar i en skild manHur man deltar i en skild man
    » » Hur man jämför datum i Java

    © 2011—2021 gushelom.ru