Java:
Beräkna ett datum i framtiden eller förflutenheten
Hur man gör:
Java inbyggda klasser som LocalDate
och Period
gör det enkelt. Kolla in koden:
import java.time.LocalDate;
import java.time.Period;
public class DateCalculator {
public static void main(String[] args) {
// Skapa dagens datum
LocalDate today = LocalDate.now();
// Lägg till 2 veckor
LocalDate twoWeeksLater = today.plus(Period.ofWeeks(2));
System.out.println("Datum om två veckor: " + twoWeeksLater);
// Ta bort 5 dagar
LocalDate fiveDaysAgo = today.minus(Period.ofDays(5));
System.out.println("Datum för fem dagar sedan: " + fiveDaysAgo);
}
}
Exempel på output:
Datum om två veckor: 2023-04-28
Datum för fem dagar sedan: 2023-04-11
Fördjupning:
Förr använde Java Date
och Calendar
för tiddatumhantering. De var mutable och inte tidssäkra. Sedan Java 8 använder vi LocalDate
, LocalTime
, och LocalDateTime
i java.time
-paketet – de är omutbara och trådsäkra.
Ett alternativ är att använda java.util.Calendar
för äldre Java-versioner, men det är knöligare och mer felbenäget. Joda-Time var en populär tredjepartsbibliotek före Java 8, men nu är java.time
att föredra.
Detaljer i implementationen att notera är tidszonshantering (ZonedDateTime
), och formatanpassning med DateTimeFormatter
om du behöver visa datumen på olika sätt.
Se även:
- Java-dokumentation för
LocalDate
: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html - Oracle’s tutorial om datum och tid: https://docs.oracle.com/javase/tutorial/datetime/
- ISO 8601 Datum och tidsstandarder: https://www.iso.org/iso-8601-date-and-time-format.html
- Joda-Time, för historisk kontext: http://www.joda.org/joda-time/