ब्लॉग पर वापस जाएं
3 min read

पायथन में आयु की गणना कैसे करें (डेटाटाइम और डेटयूटिल उदाहरण)

जानें कि पायथन में जन्म तिथि से आयु की गणना कैसे करें। इसमें पूर्ण वर्ष, एक विशिष्ट तिथि के अनुसार आयु, और लीप वर्ष और समय क्षेत्र जैसे सामान्य नुकसान शामिल हैं।

पायथन में आयु की गणना कैसे करें (डेटाटाइम और डेटयूटिल उदाहरण)

पायथन में आयु की गणना कैसे करें (डेटाटाइम और डेटयूटिल उदाहरण)

अगर आपको जरूरत हैपायथन में उम्र की गणना करेंजन्मतिथि से, सबसे महत्वपूर्ण बात जो सही होनी चाहिए वह है उम्र की परिभाषा: अधिकांश ऐप्स को इसकी आवश्यकता होती हैसाल पूरे हो गए(पूर्ण जन्मदिन), केवल वर्षों के बीच का अंतर नहीं।

1) वर्ष पूर्ण (सुरक्षित परिभाषा)

यह जन्म तिथि (डीओबी) के बाद से पूरे वर्षों की संख्या लौटाता है। यदि चालू वर्ष में अभी तक जन्मदिन नहीं हुआ है तो इसमें 1 घटा दिया जाता है।

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) एक विशिष्ट तिथि के अनुसार आयु (सिर्फ आज नहीं)

कई उपयोग के मामलों में "तारीख" की आवश्यकता होती है: बीमा मूल्य निर्धारण, पात्रता जांच, स्कूल कटऑफ, रिपोर्ट। उपरोक्त फ़ंक्शन पहले से ही इसका समर्थन करता हैas_of.

3) सटीक शैली आउटपुट (वर्ष और महीने)

यदि आप "25 वर्ष 4 महीने" जैसा आउटपुट चाहते हैं, तो उपयोग करेंdateutil.relativedelta(यह महीने की लंबाई को सही ढंग से संभालता है)।

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) सामान्य नुकसान (और उनसे कैसे बचें)

  • लीप दिवस जन्मदिन:तय करें कि आप गैर लीप वर्षों में 29 फरवरी को कैसा व्यवहार करना चाहते हैं। कई सिस्टम 28 फरवरी या 1 मार्च का उपयोग करते हैं। लाइब्रेरी व्यवहार मायने रखता है, इसलिए इसका परीक्षण करें।
  • दिनांक समय और समय क्षेत्र:जन्मतिथि के लिए, प्राथमिकता देंdateऊपरdatetime. यदि आपको डेटाटाइम का उपयोग करना ही है, तो पहले उसी समय क्षेत्र को सामान्य करें।
  • भविष्य की जन्मतिथि या लुप्त मान:नकारात्मक आयु या क्रैश से बचने के लिए इनपुट मान्य करें।

त्वरित जांच (कोई कोड नहीं)

यदि आपको केवल एक परिणाम शीघ्र चाहिए, तो ऑनलाइन कैलकुलेटर का उपयोग करें:आयु की गणना ऑनलाइन करें.

संबंधित मार्गदर्शिकाएँ

अक्सर पूछे जाने वाले प्रश्न

(आज.वर्ष - जन्मतिथि.वर्ष) कभी-कभी ग़लत क्यों होता है?

क्योंकि यह इस बात पर ध्यान नहीं देता कि इस वर्ष जन्मदिन पहले ही हो चुका है या नहीं। आपको जन्मदिन से पहले 1 घटाना होगा.

क्या मुझे जन्म तिथि के लिए दिनांक समय या तारीख का उपयोग करना चाहिए?

उपयोगdateजब संभव हो। जन्मतिथि एक कैलेंडर दिन है, और समय क्षेत्र दिनांक समय को दिनों के अनुसार स्थानांतरित कर सकता है।