Hem Personliga finanser Hur man lägger till eller subtraherar datum i Java - dummies

Hur man lägger till eller subtraherar datum i Java - dummies

Video: Understanding Time Zones 2024

Video: Understanding Time Zones 2024
Anonim

Precis som du inte kan använda Java: s inbyggda jämförelseoperatörer med datum, kan du inte använda inbyggda matematiska operatörer. I stället kan du utföra addition och subtraktion på datum med de olika metoderna plus och minus , och du kan bestämma skillnaden mellan två datum med hjälp av metoden till .

Ett viktigt faktum att tänka på när man gör datum- och tidsberäkningar är att datum-tid-objekt är oföränderliga. Det innebär att när du skapar ett Date-Time-objekt kan du inte ändra sitt värde. När du utför en beräkning i ett Date-Time-objekt, är resultatet ett nytt Date-Time-objekt med ett nytt värde.

Med metoderna plus och minus kan du lägga till olika datum- och tidsenheter till ett datum-tid-objekt. Det finns fyra varianter av var och en för klassen LocalDate , så att du kan lägga till eller subtrahera år, månader, veckor och dagar till ett LocalDate -objekt. Följande kod skriver ut det aktuella datumet, morgondagens datum och datumet en vecka, en månad och ett år från nu:

System. ut. println ("Today:" + LocalDate. now ());

System. ut. println ("Tomorrow:" + LocalDate. now (). plusDays (1));

System. ut. println ("Nästa vecka:" + LocalDate. now (). plusWeeks (1));

System. ut. println ("Nästa månad:" + LocalDate. now (). plusMonths (1));

System. ut. println ("Nästa år:" + LocalDate. now (). plusYears (1));

För att bestämma skillnaden mellan två datum, använd metoden till . Det beräknar skillnaden mellan ett datum och det datum som passerat som den första parametern, mätt i enheterna som indikeras av den andra parametern. Till exempel bestämmer följande kod antal dagar mellan 16 maj 2014 och 15 december 2014:

LocalDate date1 = LocalDate. parse (”2014/05/16”);

LocalDate date2 = LocalDate. parse (”2014/12/15”);

System. ut. println (datum1 till och med (datum2, ChronoUnit. DAYS));

Vissa datumberäkningar kan vara lite mer komplexa. Tänk på ett företag som förbereder fakturor den 15: e varje månad. Följande kodkod visar antalet dagar från det aktuella datumet till nästa faktureringsdatum:

LocalDate today = LocalDate. nu();

LocalDate invDate = LocalDate. av (idag. getYear (),

idag. getMonthValue (), 15);

om (idag. GetDayOfMonth ()> 15)

invDate = invDate. plusMonths (1);

långa dagarToInvoice = idag. tills (invDate,

ChronoUnit. DAYS);

System. ut. println (daysToInvoice

+ "till nästa fakturadatum.”);

Detta exempel fungerar genom att först hämta det aktuella datumet och sedan skapa ett nytt LocalDate -objekt som representerar den 15: e aktuella månaden. Om den aktuella dagen i månaden är större än 15, lägger den sedan till en månad till faktureringsdatumet. Med andra ord, om det är 16 eller senare, förekommer fakturering den 15: e den följande månaden, inte den här månaden. Sedan använder den metoden till för att bestämma antalet dagar mellan det aktuella datumet och nästa faktureringsdatum.

ChronoUnit är en uppräkning som definierar de olika tidsenheter som kan användas i datum- och tidsberäkningar. De möjliga värdena är:

CENTURIES

DAYS

DECADES

ERAS

FOREVER

HALVDAGAR

HOURS

MICROS

MILLENNIA

MILLIS

MINUTER

MÅNADER

NANOS

SECONDS

WEEKS

ÅR

De flesta av dessa är självklarande, men två av dem är lite sällsynta:

  • ERA anger om Datumet refererar till den gemensamma tiden (CE, även känd som AD) eller före Era (BCE, även känd som BC).
  • FOREVER representerar det största värdet som kan representeras som en varaktighet. Tyvärr kommer Java inte att låta dig leva för alltid. Följande kod kastar ett undantag:

LocalDate birthday = LocalDate. parse (”1959/05/16);

födelsedag = födelsedag. plus (1, ChronoUnit. FOREVER);

Observera att ChronoUni t är i java. tid. temporal -paket, så var noga med att inkludera följande uttalande högst upp i något program som använder ChronoUnit :

import java. tid. timlig. *;

Hur man lägger till eller subtraherar datum i Java - dummies

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: