Java Academy · Lektion

Period og datoregneregler

Læg datoer sammen og træk fra

Lektion 3 af 413 trin

Period og datoregneregler er en gratis Java Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Java Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Java Academy-kurset indeholder 4 lektioner i alt.

Tidsmængder baseret på datoer

Mens Duration måler tid i timer og sekunder, måler Period mængder i år, måneder og dage. Det er det rigtige værktøj til kalenderberegninger som alder og frister.

Tilføjelse af dage

LocalDate tilbyder plusDays til at gå fremad. Husk, at resultatet er en ny, uforanderlig værdi.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate start = LocalDate.of(2026, 5, 30);
        System.out.println(start.plusDays(10));
    }
}

Tilføjelse af måneder og år

plusMonths og plusYears forskyder med større enheder og håndterer korrekt forskelle i månedernes længde.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate start = LocalDate.of(2026, 1, 31);
        System.out.println(start.plusMonths(1));
        System.out.println(start.plusYears(2));
    }
}

Fratrækning af datoer

Brug minusDays, minusWeeks og lignende metoder til at gå tilbage i tiden.

import java.time.LocalDate;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date.minusWeeks(2));
    }
}

Oprettelse af en Period

Opret en Period med of eller fabriksmetoder for en enkelt enhed som ofMonths, og føj den derefter til en dato.

import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        Period p = Period.of(1, 2, 3);
        LocalDate date = LocalDate.of(2026, 1, 1);
        System.out.println(date.plus(p));
    }
}

Period mellem datoer

Period.between måler tidsforskellen mellem to datoer som år, måneder og dage.

import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        LocalDate from = LocalDate.of(2020, 1, 15);
        LocalDate to = LocalDate.of(2026, 5, 30);
        Period p = Period.between(from, to);
        System.out.println(p.getYears() + "y " + p.getMonths() + "m " + p.getDays() + "d");
    }
}

Beregning af alder

En klassisk anvendelse af Period.between er at beregne en persons alder i hele år.

import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        LocalDate birth = LocalDate.of(2000, 6, 15);
        LocalDate today = LocalDate.of(2026, 5, 30);
        int age = Period.between(birth, today).getYears();
        System.out.println(age);
    }
}

Optælling af det samlede antal dage

Period opdeler tidsforskellen i år, måneder og dage. Hvis du vil have ét samlet antal dage, skal du i stedet bruge ChronoUnit.DAYS.between.

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class Main {
    public static void main(String[] args) {
        LocalDate from = LocalDate.of(2026, 1, 1);
        LocalDate to = LocalDate.of(2026, 12, 31);
        long days = ChronoUnit.DAYS.between(from, to);
        System.out.println(days);
    }
}

ChronoUnits fleksibilitet

ChronoUnit kan tælle i mange enheder: DAYS, WEEKS, MONTHS og YEARS. Hvert kald til between returnerer ét tal.

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class Main {
    public static void main(String[] args) {
        LocalDate from = LocalDate.of(2026, 1, 1);
        LocalDate to = LocalDate.of(2026, 12, 31);
        System.out.println(ChronoUnit.WEEKS.between(from, to));
        System.out.println(ChronoUnit.MONTHS.between(from, to));
    }
}

Finde næste ugedag

Klassen TemporalAdjusters tilbyder intelligente justeringer, f.eks. at springe frem til den første dag i næste måned.

import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;

public class Main {
    public static void main(String[] args) {
        LocalDate date = LocalDate.of(2026, 5, 30);
        System.out.println(date.with(TemporalAdjusters.firstDayOfNextMonth()));
    }
}

Period kontra ChronoUnit

Brug Period, når du ønsker en letforståelig opdeling i år, måneder og dage. Brug ChronoUnit.between, når du ønsker ét samlet antal i én enhed.

Hurtig kontrol

Kontrollér dine færdigheder i datoberegning.

Opsamling

Du har lært datoberegning:

  • plusDays, plusMonths og plusYears forskyder datoer uforanderligt
  • Period måler år, måneder og dage og er ideel til alder
  • Period.between giver en letforståelig opdeling af tidsforskellen
  • ChronoUnit.between giver ét samlet antal i en valgt enhed
  • TemporalAdjusters håndterer intelligente spring som den første dag i næste måned
Gratis at komme i gang

Lær Java med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
104
Lektioner
374

Ofte stillede spørgsmål

Er lektionen “Period og datoregneregler” gratis?

Ja — hele teksten til “Period og datoregneregler” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Java Academy-kurset, skal du opgradere til CoddyKit PRO. Java Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Period og datoregneregler”?

Læg datoer sammen og træk fra Du øver dig i Java Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Java Academy?

Der kræves ingen tidligere erfaring. Java Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Period og datoregneregler”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Java Academy-lektion?

Ja. Alle Java Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. LocalDate, LocalTime, LocalDateTime
  2. Instant og Duration
  3. Period og datoregneregler
  4. Formatering med DateTimeFormatter
← Tilbage til Java Academy