Spring til indhold

Aldersberegner — Præcis alder i år, måneder og dage

Gratis aldersberegner: indtast din fødselsdato for at få din præcise alder i år, måneder og dage, plus samlet uger, dage, timer og din næste fødselsdag.

Aldersberegner

Præcis alder
36 år 7 måneder 26 dage

Du blev født på en Monday

Næste fødselsdag: 127 dage væk (bliver 37)

Din alder i andre enheder

Måneder
439
Uger
1,912
Dage
13,387
Timer
321,288
Minutter
19,277,280
Sekunder
1,156,636,800

Livets fremskridt

Din alder i forhold til et illustrativt 80-årigt referencespan.

Aldersvisualisering3636 / 80 år080
Indlæsningsberegner...
📚

Dokumentation

Hvad er en aldersberegner?

En aldersberegner finder den nøjagtige tid mellem to datoer: en fødselsdato og en måldato, som regel i dag. Den angiver resultatet i år, måneder og dage samt som en løbende total i måneder, uger, dage, timer, minutter og sekunder. Alder kan også beregnes for en dato i fortiden eller fremtiden, hvilket viser, hvor gammel en person var eller vil være på den pågældende dag.

Sådan beregnes alder

Alder er forskellen mellem to kalenderdatoer. Der er to korrekte måder at beskrive denne forskel på, og begge er nyttige til forskellige formål.

Kalenderalder (år, måneder, dage)

Dette er den almindelige måde, folk angiver deres alder på, for eksempel "33 år, 4 måneder og 5 dage gammel." Den findes i tre trin:

  1. Tæl de hele år, der er gået siden fødselsdatoen.
  2. Tæl fra den seneste fødselsdag de hele måneder, der er gået.
  3. Tæl derefter de resterende dage.

Trin 3 bliver vanskeligt hen mod slutningen af en måned, fordi månederne ikke alle har samme antal dage. En person, der er født den 31. januar, og hvis alder måles den 1. marts, er 1 måned og 1 dag gammel. En måned efter den 31. januar er den 28. februar (eller den 29. februar i et skudår), eftersom der ikke findes en 31. februar. Den 1. marts er dagen efter. Denne metode, der undertiden kaldes reglen relativedelta efter det Python-bibliotek, som gjorde den udbredt, begrænser årsdagen til den sidste dag i den kortere måned, så dagstallet aldrig bliver negativt.

Samlet forløbet tid (dage, timer, sekunder)

For at tælle den levede tid præcist omregnes begge datoer til et enkelt tidspunkt, og forskellen beregnes i hele dage:

d=⌊t−b86400000⌋d = \left\lfloor \frac{t - b}{86400000} \right\rfloor

hvor d er antallet af hele dage, t måldatoen og b fødselsdatoen, hver angivet som et antal millisekunder, og divisoren er antallet af millisekunder på én dag.

Begge datoer sættes til midnat efter UTC (koordineret universaltid), før subtraktionen foretages. Det forhindrer, at skift til og fra sommertid tilføjer eller fjerner en time og forvrider dagstallet. Ugeantallet fås ved at dividere det samlede antal dage med 7 og runde ned. Timer, minutter og sekunder fås ved at gange dagstallet med henholdsvis 24, 1.440 og 86.400.

Hvis det samlede antal dage divideres med 365 eller 365,25, fås en omtrentlig alder i år, men metoden ved ikke, hvilke år i perioden der var skudår. Kalenderberegningen, der er beskrevet ovenfor, er nøjagtig. Brug kalenderalder til at besvare spørgsmålet "hvor gammel er jeg". Brug det samlede antal dage eller uger til opgaver, der kræver præcis forløbet tid, for eksempel tidsfastsættelse af medicindoser eller nedtælling til en milepæl.

Regneeksempel

En person, der er født den 1. januar 2000, og hvis alder måles den 1. januar 2020:

MålVærdi
Kalenderalder20 år, 0 måneder, 0 dage
Samlede måneder240
Samlede uger1.043
Samlede dage7.305
Samlede timer175.320
Samlede minutter10.519.200
Samlede sekunder631.152.000
Ugedag for fødslenLørdag

Det samlede antal på 7.305 dage svarer til 20 × 365 plus 5 skuddage for skudårene 2000, 2004, 2008, 2012 og 2016. Hvert af disse år tilføjede en 29. februar, der falder inden for perioden på 20 år. Derfor er dagstallet højere end en simpel 20 × 365, og derfor er det let at få et forkert resultat på nogle få dage, hvis man beregner det i hånden.

Formel til aldersberegning i kode

Kalenderaldersmetoden ovenfor kan implementeres i de fleste programmeringssprog. Det er sikrere at bruge et indbygget datobibliotek end at skrive reglerne for skudår og månedslængder i hånden.

1from dateutil.relativedelta import relativedelta
2from datetime import date
3
4birth, target = date(2000, 1, 1), date(2020, 1, 1)
5
6age = relativedelta(target, birth)     # calendar age
7print(f"{age.years}y {age.months}m {age.days}d")
8
9total_days = (target - birth).days     # total elapsed days
10print(total_days)                      # 7305
11

Microsoft advarer om, at argumentet "md" kan returnere et negativt tal eller et forkert dagstal nær månedsskift, så den del af formlen, der beregner de resterende dage, ikke altid stemmer overens med begrænsningsreglen ovenfor.

Ofte stillede spørgsmål

Hvordan finder jeg min nøjagtige alder? Indtast en fødselsdato, og lad måldatoen være i dag. Resultatet viser alderen i år, måneder og dage samt den samme alder som samlet antal dage, uger, timer og sekunder.

Hvorfor giver to aldersberegnere forskellige svar? Forskellen skyldes som regel, hvordan de resterende dage nær et månedsskift tælles. En beregner, der begrænser datoen til den kortere måned ved månedens slutning, som beskrevet ovenfor, kan afvige med en eller to dage fra en beregner, der blot dividerer den forløbne tid med 30.

Tager beregningen højde for skudår? Ja. Det samlede dagstal omfatter hver 29. februar, der falder mellem de to datoer. I et år uden en 29. februar regnes årsdagen for en person født på en skuddag som 28. februar, den sidste dag i måneden. En person, der er født den 29. februar 1996, er 26 år, 11 måneder og 22 dage gammel den 20. februar 2023, og den næste fødselsdag falder 8 dage senere, den 28. februar 2023.

Kan alder beregnes for en dato i fortiden eller fremtiden? Ja. Hvis måldatoen sættes til en fremtidig dato, vises det, hvor gammel personen vil være på den pågældende dag. Hvis den sættes til en tidligere dato, vises det, hvor gammel personen var. Fødselsdatoen kan ikke ligge i fremtiden, og måldatoen kan ikke ligge før fødselsdatoen.

Påvirker tidszoner resultatet? Nej. Begge datoer omregnes til midnat UTC, før dagstallet beregnes, så totalen forbliver den samme uanset brugerens placering eller ændringer til sommertid.

Hvorfor afviger dagstallet fra at dividere dage med 365,25? 365,25 er kun en gennemsnitlig årslængde; tallet tager ikke højde for, hvilke konkrete år i perioden der er skudår med 366 dage. Optælling af hele dage mellem to faktiske kalenderdatoer er nøjagtig.

Kilder

  1. Python dateutil — relativedelta, reglen for måneder og dage ved kalenderalder, som er beskrevet ovenfor.
  2. Java-platformen — Period.between og ChronoUnit.DAYS.
  3. Microsoft Excel — funktionen DATEDIF.
  4. MDN Web Docs — Date.
  5. Dershowitz, N. og Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.