مفت عمر کیلکولیٹر: اپنی پیدائش کی تاریخ درج کریں اپنی درست عمر سالوں، مہینوں اور دنوں میں حاصل کرنے کے لیے، ساتھ ہی کل ہفتوں، دنوں، گھنٹوں اور آپ کی اگلی سالگرہ۔
اپنی پیدائش کی تاریخ درج کریں اور یہ آپ کو بتائے گا کہ آپ بالکل کتنے بڑے ہیں — سالوں، مہینوں اور دنوں میں — جس طرح آپ اسے بلند آواز سے کہتے ہیں ("میں 33 سال، 4 مہینے اور 5 دن کا ہوں")۔ یہ وہی عمر صرف مہینوں، ہفتوں، دنوں، گھنٹوں، منٹوں اور سیکنڈوں میں بھی دکھاتا ہے، آپ کی پیدائش کا دن، اور آپ کے اگلے سالگرہ تک کتنا وقت باقی ہے۔
دوسرے فیلڈ کو آج کی تاریخ پر رکھیں اپنی موجودہ عمر کے لیے، یا اسے کسی بھی ماضی یا مستقبل کی تاریخ میں تبدیل کریں اپنی عمر اس تاریخ کو معلوم کرنے کے لیے۔
ایک اصول جو عمریں مشکل بناتا ہے: مہینے اور سال دنوں کی ایک متعین تعداد نہیں ہوتے۔ فروری میں 28 یا 29 دن ہوتے ہیں؛ دوسرے مہینوں میں 30 یا 31۔ تو "1 مہینہ" کا مطلب ہے "وہی دن کا نمبر، ایک مہینہ بعد" — "30 دن" نہیں۔ یہ کیلکولیٹر اس کیلنڈر اصول پر عمل کرتا ہے، اسی لیے یہ ایسے اوزاروں سے 1-2 دن مختلف ہو سکتا ہے جو صرف 30 یا 365 سے تقسیم کرتے ہیں۔
عمر دو تاریخوں کے درمیان فاصلہ ہے۔ اس فاصلے کو ناپنے کے دو ایماندارانہ طریقے ہیں، اور یہ اوزار دونوں دکھاتا ہے۔
1. کیلنڈر عمر (سال، مہینے، دن)۔ اپنی سالگرہ سے مکمل سال گنیں، پھر مکمل مہینے، پھر باقی دن:
مشکل حصہ مہینے کی حدود کے قریب مرحلہ 3 ہے۔ کوئی شخص 31 جنوری کو پیدا ہوا، 1 مارچ کو ناپا جائے تو، 1 مہینہ اور 1 دن پرانا ہے — کیونکہ "جن 31 کے ایک مہینہ بعد" فروری 28/29 پر آتا ہے (فروری 31 نہیں ہے)، اور 1 مارچ اس سے ایک دن آگے ہے۔ یہ کیلکولیٹر چھوٹے مہینے کے آخر پر بند کرتا ہے، بڑے پیمانے پر استعمال شدہ dateutil.relativedelta اصول سے مطابقت رکھتے ہوئے تاکہ مہینے کے آخر کی سالگریہ کبھی منفی دن کی تعداد نہ دے۔
2. کل گزرا ہوا وقت (دن، گھنٹے، سیکنڈ)۔ "آپ کی عمر دوسری اکائیوں میں" کے اعداد کے لیے، دونوں تاریخیں مکمل دنوں کی تعداد میں تبدیل کی جاتی ہیں اور پھیلائی جاتی ہیں:
دونوں تاریخیں پہلے UTC midnight پر متعین ہوتی ہیں، تاکہ دن کی بچت میں تبدیلی گھنٹہ شامل یا نکال نہ سکے اور دن کی گنتی کو غلط نہ بنائے۔ ہفتے دن کو 7 سے تقسیم کرتے ہوئے (نیچے کی طرف گول)؛ گھنٹے، منٹ اور سیکنڈ دن کی تعداد کو اوپر کی طرف بڑھا کر معلوم ہوتے ہیں۔
صرف دنوں کو 365 سے تقسیم کیوں نہ کریں؟ کیونکہ آپ منتقل ہوں گے۔ 7,305 دنوں کو 365 سے تقسیم کرنے سے 20.01 سال آتے ہیں؛ 365.25 سے تقسیم کرنے سے 20.00 — لیکن کوئی بھی یہ نہیں جانتا کہ کون سے سال لیپ سال تھے یا آپ نے دراصل کون سے مہینے گزارے۔ کیلنڈر شمار درست ہے؛ دن سے تقسیم کرنا ایک تخمینہ ہے۔ کیلنڈر عمر "میں کتنا بڑا ہوں" کے لیے استعمال کریں، اور کل دن/ہفتے درست علاج کے وقت کے کام کے لیے (دوائی کا وقت، منصوبہ کی مدت، سنگ میل کی تعداد)۔
1 جنوری 2000 کو پیدا ہوا، 1 جنوری 2020 کو ناپا جائے:
| ماپ | قیمت |
|---|---|
| کیلنڈر عمر | 20 سال، 0 مہینے، 0 دن |
| کل دن | 7,305 |
| کل ہفتے | 1,043 |
| جس دن پیدا ہوا | ہفتہ |
7,305 دن = 20 × 365 + 5 لیپ دن (2000, 2004, 2008, 2012, 2016)۔ یہ ایک تفصیل — پانچ اضافی دن جو اکثر لوگ بھول جاتے ہیں — بالکل یہی ہے کہ کیلکولیٹر ذہنی ریاضی کو شکست دیتا ہے۔
ہر زبان میں وہی حساب۔ کیلنڈر عمر کے لیے، ہاتھ سے لکھے ہوئے ریاضی کی بجائے بلٹ ان ڈیٹ لائبریری کو ترجیح دیں — یہ پہلے سے لیپ سال اور مہینے کی لمبائی جانتی ہے۔
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
5میں بالکل کتنا بڑا ہوں؟ اپنی پیدائش کی تاریخ درج کریں اور ہدف کو آج پر رکھیں۔ کیلکولیٹر سالوں، مہینوں اور دنوں میں آپ کی عمر دکھاتا ہے، اور اسے کل دنوں، ہفتوں، گھنٹوں اور سیکنڈوں میں دہراتا ہے۔
میری عمر دوسرے کیلکولیٹر سے مختلف کیوں ہے؟ تقریباً ہمیشہ مہینہ/دن کی باقی۔ اوزار اختلاف رکھتے ہیں کہ آخری مکمل مہینے کے بعد دنوں کو مہینے کی حدود پر کیسے گنیں۔ یہ ایک چھوٹے مہینے پر بند کرتا ہے (relativedelta کنونشن)؛ ایک اوزار جو 30 سے تقسیم کرتا ہے 1-2 دن سے مختلف ہوگا۔
کیا یہ لیپ سالوں اور فروری 29 کی سالگریہ کو سنبھالتا ہے؟ ہاں۔ دن کی گنتی اس رینج میں ہر لیپ دن کو شامل کرتی ہے، اور فروری 29 کی سالگری کو غیر لیپ سالوں میں فروری 28 / 1 مارچ کے خلاف ماپا جاتا ہے بغیر بہاؤ۔
کیا میں ماضی یا مستقبل کی تاریخ پر عمر کا حساب لگا سکتا ہوں؟ ہاں — "عمر اس تاریخ کو" فیلڈ کو کسی بھی تاریخ میں سیٹ کریں۔ مستقبل کی تاریخ آپ کو بتاتی ہے کہ آپ تب کتنے بڑے ہوں گے؛ ماضی کی تاریخ، آپ تب کتنے بڑے تھے۔
وقت کے علاقے کے بارے میں کیا؟ تاریخیں شمار کرنے سے پہلے UTC میں معمول کی جاتی ہیں، تو مکمل دن کی کل آپ کہاں ہیں یا دن کی بچت بدل گئی یا نہیں اس سے مستحکم رہتی ہے۔
dateutil — relativedelta (کیلنڈر عمر مہینہ/دن اصول جو یہ اوزار اتباع کرتا ہے)۔Period.between اور ChronoUnit.DAYS۔DATEDIF function۔Date۔آپ کے ورک فلو کے لیے مفید ہونے والے مزید ٹولز کا انعام کریں