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.
steg
Metod 1
Använd metoden "compareTo"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.
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
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"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".
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"
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"
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"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.
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
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"
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"
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"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 "==".
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"
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") -}
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") -}
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 årlig APA-stilrapport
- Hur man citerar en webbplats utan författare
- Hur man beräknar åldern i Excel
- Så här ändrar du datum och tid för en Android-mobil
- Så här ändrar du datumformatet i Microsoft Excel
- Så här ändrar du filens skapande och modifieringsdatum
- Hur man ringer en metod i Java
- Så här kontrollerar du datum och tid i Linux
- Hur 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 Gmail
- Hur man deltar i en skild man
- Så här ställer du in datorns tid och datum från kommandotolkningen
- Så här byter du en sträng i Java
- Hur läser UTM Koordinater
- Så här ändrar du datum och tid på iPhone
- Hur man får längden på en sträng i Java
- Hur man lägger parfym för ett möte
- Hur man memorera datum
- Så här tar du bort datum och tid i WhatsApp
- Hur man går ut med en tjur
- Hur man lämnar med en våg