Calculadora de Edad — Edad Exacta en Años, Meses y Días
Calculadora de edad gratuita: ingresa tu fecha de nacimiento para obtener tu edad exacta en años, meses y días, más semanas, días, horas totales y tu próximo cumpleaños.
Calculadora de Edad
Naciste un Monday
Próximo cumpleaños: faltan 144 días (cumpliendo 37)
Tu edad en otras unidades
Progreso de vida
Tu edad contra un período de referencia ilustrativo de 80 años.
Documentación
Qué hace esta calculadora
Escribe tu fecha de nacimiento y te dice exactamente cuántos años tienes — en años, meses y días — de la misma forma que lo dirías en voz alta ("Tengo 33 años, 4 meses y 5 días"). También muestra esa misma edad contada puramente en meses, semanas, días, horas, minutos y segundos, el día de la semana en que naciste, y cuánto falta para tu próximo cumpleaños.
Deja el segundo campo en la fecha de hoy para tu edad actual, o cámbialo a cualquier fecha pasada o futura para encontrar tu edad en esa fecha.
La regla que hace que las edades sean complicadas: los meses y años no son un número fijo de días. Febrero tiene 28 o 29; otros meses tienen 30 o 31. Entonces "1 mes" significa "el mismo número de día, un mes después" — no "30 días". Esta calculadora sigue esa regla de calendario, por eso puede diferir por uno o dos días de herramientas que simplemente dividen por 30 o 365.
Cómo se calcula tu edad
La edad es el intervalo entre dos fechas. Hay dos formas honestas de medir ese intervalo, y esta herramienta muestra ambas.
1. Edad del calendario (años, meses, días). Cuenta años completos desde tu cumpleaños, luego meses completos, luego los días restantes:
- Cuenta años completos desde el nacimiento.
- Desde el último cumpleaños, cuenta meses completos.
- Desde allí, cuenta los días restantes.
La parte sutil es el paso 3 cerca de los límites del mes. Alguien nacido el 31 de enero, medido el 1 de marzo, tiene 1 mes y 1 día — porque "un mes después del 31 de enero" cae en el 28/29 de febrero (no hay 31 de febrero), y el 1 de marzo es un día después de eso. Esta calculadora se ajusta al final del mes más corto, coincidiendo con la regla ampliamente utilizada dateutil.relativedelta para que los cumpleaños de fin de mes nunca produzcan un conteo de días negativo.
2. Tiempo total transcurrido (días, horas, segundos). Para las figuras "tu edad en otras unidades", las dos fechas se convierten en un conteo de días completos y se multiplican:
Ambas fechas se fijan a medianoche UTC primero, para que los cambios de horario de verano no puedan agregar o quitar una hora y descontrolar el conteo de días. Las semanas son días ÷ 7 (redondeado hacia abajo); las horas, minutos y segundos se escalan a partir del conteo de días.
¿Por qué no simplemente dividir días por 365? Porque te desviarías. Dividir 7,305 días por 365 da 20.01 años; dividir por 365.25 da 20.00 — pero ninguno sabe qué años fueron bisiestos o qué meses realmente viviste. El conteo de calendario es exacto; dividir días es una aproximación. Usa edad del calendario para "cuántos años tengo" y días/semanas totales para trabajo de tiempo transcurrido preciso (cronometraje de medicamentos, duraciones de proyectos, conteos regresivos de hitos).
Ejemplo trabajado
Nacido 1 de enero de 2000, medido 1 de enero de 2020:
| Medida | Valor |
|---|---|
| Edad del calendario | 20 años, 0 meses, 0 días |
| Total de días | 7,305 |
| Total de semanas | 1,043 |
| Día de nacimiento | Sábado |
Los 7,305 días = 20 × 365 + 5 días bisiestos (2000, 2004, 2008, 2012, 2016). Ese único detalle — cinco días extra que la mayoría olvida — es exactamente por qué una calculadora le gana a las matemáticas mentales.
Age in code
The same calculation in each language. For calendar age, prefer a built-in date library over hand-rolled arithmetic — it already knows leap years and month lengths.
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
5Preguntas frecuentes
¿Cuántos años tengo exactamente? Ingresa tu fecha de nacimiento y deja el objetivo en hoy. La calculadora muestra tu edad en años, meses y días, y la repite en días, semanas, horas y segundos totales.
¿Por qué mi edad difiere de otra calculadora? Casi siempre el mes/día restante. Las herramientas no están de acuerdo sobre cómo contar los días después del último mes completo en los límites del mes. Esta se ajusta al mes más corto (la convención relativedelta); una herramienta que divide por 30 diferirá por uno o dos días.
¿Maneja años bisiestos y cumpleaños del 29 de febrero? Sí. Los conteos de días incluyen cada día bisiesto en el rango, y un cumpleaños del 29 de febrero se mide contra el 28 de febrero / 1 de marzo en años no bisiestos sin desbordamiento.
¿Puedo calcular la edad en una fecha pasada o futura? Sí — establece el campo "Edad en la fecha" en cualquier fecha. Una fecha futura te dice cuántos años tendrás entonces; una fecha pasada, cuántos años tenías.
¿Qué pasa con las zonas horarias? Las fechas se normalizan a UTC antes de contar, por lo que el total del día completo es estable sin importar dónde estés o si cambió el horario de verano.
Fuentes
- Python
dateutil—relativedelta(la regla de mes/día de edad del calendario que sigue esta herramienta). - Java Platform —
Period.betweenyChronoUnit.DAYS. - Microsoft Excel — función
DATEDIF. - MDN Web Docs —
Date. - Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.