Alderskalkulator — Nøyaktig alder i år, måneder og dager
Gratis alderskalkulator: skriv inn fødselsdatoen din for å få din nøyaktige alder i år, måneder og dager, pluss totale uker, dager, timer og din neste bursdag.
Alderskalkulator
Du ble født på en Monday
Neste bursdag: 144 dager unna (fyller 37)
Din alder i andre enheter
Livsframgang
Din alder mot en illustrativ 80-års referansespan.
Dokumentasjon
What this calculator does
Skriv inn fødselsdatoen din, og den forteller deg nøyaktig hvor gammel du er — i år, måneder og dager — på samme måte som du ville sagt det høyt ("Jeg er 33 år, 4 måneder og 5 dager gammel"). Den viser også samme alder regnet rent i måneder, uker, dager, timer, minutter og sekunder, hverdagen du ble født på, og hvor lenge til neste bursdag.
La det andre feltet stå på dagens dato for din nåværende alder, eller endre det til en hvilken som helst tidligere eller fremtidig dato for å finne din alder på den datoen.
Den ene regelen som gjør alder vanskelig: måneder og år er ikke et fast antall dager. Februar har 28 eller 29; andre måneder har 30 eller 31. Så "1 måned" betyr "samme datonummer, en måned senere" — ikke "30 dager." Denne kalkulatoren følger den kalenderregelen, noe som er grunnen til at den kan avvike med en eller to dager fra verktøy som bare deler på 30 eller 365.
How your age is worked out
Alder er gapet mellom to datoer. Det er to ærlige måter å måle det gapet på, og dette verktøyet viser begge.
1. Kalenderalder (år, måneder, dager). Tell hele år fra bursdagen din, deretter hele måneder, deretter de gjenværende dagene:
- Tell hele år siden fødsel.
- Fra siste fødselsdag, tell hele måneder.
- Derfra, tell de gjenværende dagene.
Den subtile delen er trinn 3 nær månedgrensene. Noen født 31. januar, målt 1. mars, er 1 måned og 1 dag gammel — fordi "en måned etter jan 31" lander på feb 28/29 (det er ingen feb 31), og mars 1. er en dag etter det. Denne kalkulatoren klemmer til slutten av den kortere måneden, som samsvarer med den mye brukte dateutil.relativedelta regelen, slik at bursdager på slutten av måneden aldri gir en negativ dagtelling.
2. Total forløpt tid (dager, timer, sekunder). For "din alder i andre enheter" tallene, konverteres de to datoene til en telling av hele dager og multipliseres ut:
Begge datoer er festet til UTC midnatt først, slik at endringer i sommertid ikke kan legge til eller fjerne en time og kaste dagtelling ut av kursen. Uker er dager ÷ 7 (rundet ned); timer, minutter og sekunder er dagtelling skalert opp.
Hvorfor ikke bare dele dager på 365? Fordi du ville drifte. Deling av 7 305 dager på 365 gir 20,01 år; deling på 365,25 gir 20,00 — men ingen vet hvilke år var skuddår eller hvilke måneder du faktisk levde gjennom. Kalendertellingen er nøyaktig; dagopdeling er en tilnærming. Bruk kalenderalder for "hvor gammel er jeg", og totale dager/uker for presist arbeidsopphold (medisinering, prosjektvarigheter, milepæltellinninger).
Worked example
Født 1. januar 2000, målt 1. januar 2020:
| Measure | Value |
|---|---|
| Calendar age | 20 år, 0 måneder, 0 dager |
| Total days | 7,305 |
| Total weeks | 1,043 |
| Weekday born | Lørdag |
De 7 305 dagene = 20 × 365 + 5 skuddager (2000, 2004, 2008, 2012, 2016). Den ene detaljen — fem ekstra dager de fleste glemmer — er nøyaktig hvorfor en kalkulator slår mental matematikk.
Age in code
Den samme beregningen på hvert språk. For kalenderalder, foretrekk et innebygd datobibliotek fremfor håndskrevet aritmetikk — det kjenner allerede skuddår og månedslengder.
1' Whole days between two dates (A1 = birth, B1 = target):
2=B1-A1
3
4' Calendar age in complete years / months / leftover days:
5=DATEDIF(A1, B1, "y") & " years, " & DATEDIF(A1, B1, "ym") & " months, " & DATEDIF(A1, B1, "md") & " days"
61from 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
111function calendarAge(birth, target) {
2 let months = (target.getUTCFullYear() - birth.getUTCFullYear()) * 12
3 + (target.getUTCMonth() - birth.getUTCMonth());
4 const anchor = new Date(Date.UTC(birth.getUTCFullYear(), birth.getUTCMonth() + months, birth.getUTCDate()));
5 if (anchor > target) months--;
6 return { years: Math.floor(months / 12), months: months % 12 };
7}
8
9const birth = new Date(Date.UTC(2000, 0, 1));
10const target = new Date(Date.UTC(2020, 0, 1));
11const totalDays = Math.floor((target - birth) / 86400000); // 7305
121import java.time.LocalDate;
2import java.time.Period;
3import java.time.temporal.ChronoUnit;
4
5LocalDate birth = LocalDate.of(2000, 1, 1);
6LocalDate target = LocalDate.of(2020, 1, 1);
7
8Period age = Period.between(birth, target); // 20y 0m 0d
9long totalDays = ChronoUnit.DAYS.between(birth, target); // 7305
101using System;
2
3var birth = new DateTime(2000, 1, 1);
4var target = new DateTime(2020, 1, 1);
5
6int years = target.Year - birth.Year;
7if (birth.AddYears(years) > target) years--; // not birthday yet
8long totalDays = (target - birth).Days; // 7305
91#include <chrono>
2using namespace std::chrono;
3
4// C++20 calendar types
5sys_days birth = year{2000}/1/1;
6sys_days target = year{2020}/1/1;
7
8auto total_days = (target - birth).count(); // 7305
9years_months_days ymd_diff{birth, target}; // year_month_day arithmetic
101package main
2
3import "time"
4
5func main() {
6 birth := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)
7 target := time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC)
8 totalDays := int(target.Sub(birth).Hours() / 24) // 7305
9 _ = totalDays
10}
111use chrono::{NaiveDate, Datelike};
2
3let birth = NaiveDate::from_ymd_opt(2000, 1, 1).unwrap();
4let target = NaiveDate::from_ymd_opt(2020, 1, 1).unwrap();
5
6let total_days = (target - birth).num_days(); // 7305
7let years = target.year() - birth.year(); // adjust if birthday not reached
81<?php
2$birth = new DateTime('2000-01-01');
3$target = new DateTime('2020-01-01');
4$diff = $birth->diff($target);
5
6echo "{$diff->y}y {$diff->m}m {$diff->d}d\n"; // 20y 0m 0d
7echo $diff->days; // 7305
81require 'date'
2
3birth = Date.new(2000, 1, 1)
4target = Date.new(2020, 1, 1)
5
6total_days = (target - birth).to_i # 7305
7years = target.year - birth.year
8years -= 1 if birth.next_year(years) > target
91birth <- as.Date("2000-01-01")
2target <- as.Date("2020-01-01")
3
4total_days <- as.integer(target - birth) # 7305
5Common questions
Hvor gammel er jeg nøyaktig? Skriv inn fødselsdatoen din og la målet stå på i dag. Kalkulatoren viser din alder i år, måneder og dager, og gjentar den i totale dager, uker, timer og sekunder.
Hvorfor avviker min alder fra en annen kalkulator? Nesten alltid måneds/dags resten. Verktøy er uenige om hvordan man teller dagene etter den siste hele måneden ved månedgrenser. Denne klemmer til den kortere måneden (konvensjonen relativedelta); et verktøy som deler på 30 vil avvike med en eller to dager.
Håndterer den skuddår og 29. februar bursdager? Ja. Dagtellingen inkluderer hver skudddag i området, og en 29. februar bursdag måles mot 28. februar / 1. mars i ikke-skuddår uten å overflyte.
Kan jeg beregne alder på en tidligere eller fremtidig dato? Ja — sett feltet "Alder på dato" til en hvilken som helst dato. En fremtidig dato forteller deg hvor gammel du blir da; en tidligere dato, hvor gammel du var.
Hva med tidssoner? Datoer normaliseres til UTC før tellingen, så hele dag-totalen er stabil uansett hvor du er eller om sommertid endret seg.
Sources
- Python
dateutil—relativedelta(the calendar-age month/day rule this tool follows). - Java Platform —
Period.betweenandChronoUnit.DAYS. - Microsoft Excel —
DATEDIFfunction. - MDN Web Docs —
Date. - Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.