Hvernig á að reikna aldur í Python (datetime og dateutil dæmi)
Lærðu hvernig á að reikna aldur út frá fæðingardegi í Python. Inniheldur lokið ár, aldur frá tiltekinni dagsetningu og algengar gildrur eins og hlaupár og tímabelti.
Hvernig á að reikna aldur í Python (datetime og dateutil dæmi)
Ef þú þarftreikna aldur í Pythonfrá fæðingardegi, aðalatriðið til að fá rétt er skilgreiningin á aldri: flest forrit þurfaárum lokið(fullir afmælisdagar), ekki bara munurinn á milli ára.
1) Árum lokið (örugga skilgreiningin)
Þetta skilar fjölda heilra ára frá fæðingardegi (DOB). Það dregur 1 frá ef afmælið hefur ekki enn átt sér stað á yfirstandandi ári.
from datetime import date
def age_years(dob: date, as_of: date | None = None) -> int:
if as_of is None:
as_of = date.today()
years = as_of.year - dob.year
before_birthday = (as_of.month, as_of.day) < (dob.month, dob.day)
return years - 1 if before_birthday else years
print(age_years(date(2000, 10, 5), date(2026, 2, 26)))
2) Aldur frá tiltekinni dagsetningu (ekki bara í dag)
Mörg notkunartilvik þurfa „frá og með“ dagsetningu: tryggingaverð, hæfispróf, skólalok, skýrslur. Aðgerðin hér að ofan styður það nú þegar í gegnumas_of.
3) Nákvæm stílframleiðsla (ár og mánuðir)
Ef þú vilt framleiðsla eins og "25 ár 4 mánuðir", notaðudateutil.relativedelta(hann meðhöndlar mánaðarlengdir rétt).
from datetime import date
from dateutil.relativedelta import relativedelta
def age_ym(dob: date, as_of: date | None = None):
if as_of is None:
as_of = date.today()
rd = relativedelta(as_of, dob)
return rd.years, rd.months
print(age_ym(date(2000, 10, 5), date(2026, 2, 26)))
4) Algengar gildrur (og hvernig á að forðast þær)
- Stökkdagafmæli:ákveðið hvernig þú vilt meðhöndla 29. febrúar á hlaupárum. Mörg kerfi nota 28. febrúar eða 1. mars. Hegðun bókasafns skiptir máli, svo prófaðu það.
- Dagsetningar og tímabelti:fyrir DOB, frekar
dateyfirdatetime. Ef þú verður að nota dagsetningartíma, staðlaðu fyrst í sama tímabelti. - Framundan DOB eða vantar gildi:sannreyna inntak til að forðast neikvæða aldur eða hrun.
Flýtiskoðun (enginn kóða)
Ef þú þarft bara eina niðurstöðu hratt, notaðu reiknivélina á netinu:Reiknaðu aldur á netinu.
Tengdir leiðsögumenn
- Hvernig á að reikna út aldur (heill leiðbeiningar)
- Hvernig á að reikna aldur í Excel
- Hvernig á að reikna aldur í JavaScript
Algengar spurningar
Af hverju er (í dag.ár - dob.ár) rangt stundum?
Vegna þess að það lítur fram hjá því hvort afmælið hafi þegar gerst á þessu ári. Þú verður að draga 1 frá fyrir afmælið.
Ætti ég að nota datetime eða dagsetningu fyrir fæðingardag?
Notaðudateþegar mögulegt er. DOB er almanaksdagur og tímabelti geta fært dagsetningartíma yfir daga.