Kotlin:
Beräkna ett datum i framtiden eller förflutenheten
Hur gör man:
import java.time.LocalDate
import java.time.temporal.ChronoUnit
fun main() {
val today = LocalDate.now()
val tenDaysLater = today.plusDays(10)
val thirtyDaysAgo = today.minusDays(30)
println("Idag: $today")
println("Om tio dagar: $tenDaysLater")
println("Trettio dagar sedan: $thirtyDaysAgo")
}
Exempelutdatan kan se ut så här:
Idag: 2023-04-03
Om tio dagar: 2023-04-13
Trettio dagar sedan: 2023-03-04
Fördjupning
I Java världen handskades datum manipulation länge med java.util.Date
och java.util.Calendar
, men de var klumpiga och inte trådsäkra. Java 8 introducerade java.time
(JSR-310), som gav oss en robust och lättanvänd API för datum och tid, och Kotlin har adopterat detta. Alternativ till den inbyggda API:n inkluderar Joda-Time, även om dess användning är mindre vanlig sedan java.time
blev standard. När du arbetar med datum och tider, oavsett om du använder inbyggda funktioner eller bibliotek, är det viktigt att överväga tidszoner och iaktta bästa praxis för datumperiodsberäkningar, såsom att undvika hårdkodade värden (ex. “30 dagar per månad”) på grund av varierande månadslängder och skottår.