বয়স ক্যালকুলেটর — বছর, মাস ও দিনে সঠিক বয়স
বিনামূল্যে বয়স ক্যালকুলেটর: আপনার জন্ম তারিখ প্রবেশ করুন আপনার সঠিক বয়স বছর, মাস এবং দিনে পেতে, প্লাস মোট সপ্তাহ, দিন, ঘন্টা এবং আপনার পরবর্তী জন্মদিন।
বয়স ক্যালকুলেটর
আপনি একটি জন্মগ্রহণ করেছিলেন Monday
পরবর্তী জন্মদিন: 144 দিন দূরে (37 তে পরিণত হচ্ছেন)
অন্যান্য ইউনিটে আপনার বয়স
জীবনের অগ্রগতি
একটি চিত্রমূলক ৮০-বছরের রেফারেন্স স্প্যানের বিরুদ্ধে আপনার বয়স।
ডকুমেন্টেশন
এই ক্যালকুলেটর কী করে
আপনার জন্ম তারিখ টাইপ করুন এবং এটি আপনাকে বলে যে আপনি কতবড় - বছর, মাস এবং দিনে - ঠিক যেমন আপনি উচ্চারণ করবেন ("আমি ৩৩ বছর, ৪ মাস এবং ৫ দিন বয়সী")। এটি একই বয়স সম্পূর্ণভাবে মাস, সপ্তাহ, দিন, ঘন্টা, মিনিট এবং সেকেন্ডে গণনা করা দেখায়, আপনি যে সপ্তাহের দিনে জন্মগ্রহণ করেছিলেন, এবং আপনার পরবর্তী জন্মদিন পর্যন্ত কতক্ষণ বাকি আছে।
দ্বিতীয় ক্ষেত্রটি আজকের তারিখে রেখে দিন আপনার বর্তমান বয়সের জন্য, অথবা যেকোনো অতীত বা ভবিষ্যত তারিখে পরিবর্তন করুন সেই তারিখে আপনার বয়স খুঁজে পেতে।
যে একটি নিয়ম বয়স জটিল করে তোলে: মাস এবং বছর দিনের একটি নির্দিষ্ট সংখ্যা নয়। ফেব্রুয়ারি ২৮ বা ২৯; অন্যান্য মাসে ৩০ বা ৩১। তাই "১ মাস" মানে "একই দিন সংখ্যা, এক মাস পরে" - "৩০ দিন" নয়। এই ক্যালকুলেটর সেই ক্যালেন্ডার নিয়ম অনুসরণ করে, যার কারণে এটি সরঞ্জামগুলি থেকে এক বা দুই দিন ভিন্ন হতে পারে যা শুধু ৩০ বা ৩৬৫ দ্বারা ভাগ করে।
আপনার বয়স কীভাবে কাজ করা হয়
বয়স দুটি তারিখের মধ্যে ব্যবধান। সেই ব্যবধান পরিমাপ করার দুটি সৎ উপায় আছে, এবং এই সরঞ্জামটি উভয় দেখায়।
১. ক্যালেন্ডার বয়স (বছর, মাস, দিন)। আপনার জন্মদিন থেকে সম্পূর্ণ বছর গণনা করুন, তারপর সম্পূর্ণ মাস, তারপর অবশিষ্ট দিন:
১. জন্ম থেকে সম্পূর্ণ বছর গণনা করুন। २. শেষ জন্মদিন থেকে, সম্পূর্ণ মাস গণনা করুন। ३. সেখান থেকে, অবশিষ্ট দিন গণনা করুন।
সূক্ষ্ম অংশটি মাসের সীমানার কাছাকাছি ३ ধাপ। কেউ ३१ জানুয়ারিতে জন্মগ্রহণ করেছেন, १ মার্চে পরিমাপ করা হয়েছে, १ মাস এবং १ দিন বয়সী - কারণ "জানুয়ারি ३१ এর এক মাস পরে" ফেব্রুয়ারি २८/२९ এ অবতরণ করে (ফেব্রুয়ারি ३१ নেই), এবং মার্চ १ তার চেয়ে এক দিন বেশি। এই ক্যালকুলেটর ছোট মাসের শেষে ক্ল্যাম্প করে, ব্যাপকভাবে ব্যবহৃত dateutil.relativedelta নিয়ম মেলে যাতে মাসের শেষে জন্মদিনগুলি কখনও নেতিবাচক দিন গণনা তৈরি করে না।
२. মোট অতিবাহিত সময় (দিন, ঘন্টা, সেকেন্ড)। "আপনার বয়স অন্যান্য ইউনিটে" পরিসংখ্যানের জন্য, দুটি তারিখ সম্পূর্ণ দিনের গণনায় রূপান্তরিত হয় এবং গুণ করা হয়:
উভয় তারিখ প্রথমে UTC মধ্যরাত্রিতে পিন করা হয়, তাই দিনের আলো-সঞ্চয় পরিবর্তন একটি ঘন্টা যোগ বা ড্রপ করতে এবং দিন গণনা নিক্ষেপ করতে পারে না। সপ্তাহগুলি দিন ÷ ७ (নীচে গোল করা); ঘন্টা, মিনিট এবং সেকেন্ড দিন গণনা স্কেল করা হয়।
কেন শুধু দিনগুলি ३६५ দ্বারা বিভক্ত করবেন না? কারণ আপনি ড্রাইফ করবেন। ७,३०५ দিনগুলিকে ३६५ দ্বারা ভাগ করলে २०.०१ বছর দেয়; ३६५.२५ দ্বারা বিভক্ত করলে २०.००० দেয় - কিন্তু দুটোই জানে না কোন বছরগুলি লিপ বছর ছিল বা কোন মাসগুলি আপনি আসলে বেঁচেছিলেন। ক্যালেন্ডার গণনা সঠিক; দিন-বিভাজন একটি আনুমানিক। "আমি কতবড়" এর জন্য ক্যালেন্ডার বয়স ব্যবহার করুন, এবং মোট দিন/সপ্তাহ নির্ভুল অতিবাহিত সময় কাজের জন্য (ওষুধের সময়, প্রকল্পের সময়কাল, মাইলফলক গণনা)।
কাজের উদাহরণ
জন্মগ্রহণ করা হয়েছে १ জানুয়ারি २०००, পরিমাপ করা হয়েছে १ জানুয়ারি २०२०:
| পরিমাপ | মূল্য |
|---|---|
| ক্যালেন্ডার বয়স | २० বছর, ० মাস, ० দিন |
| মোট দিন | ७,३०५ |
| মোট সপ্তাহ | १,०४३ |
| জন্মের সপ্তাহের দিন | শনিবার |
७,३०५ দিন = २० × ३६५ + ५ লিপ দিন (२०००, २००४, २००८, २०१२, २०१६)। সেই একক বিস্তারিত - পাঁচটি অতিরিক্ত দিন বেশিরভাগ মানুষ ভুলে যায় - একেবারে কেন একটি ক্যালকুলেটর মানসিক গণিত বীট।
কোডে বয়স
প্রতিটি ভাষায় একই গণনা। ক্যালেন্ডার বয়সের জন্য, হাতে-রোল করা পাটিগণিতের উপর একটি বিল্ট-ইন তারিখ লাইব্রেরি পছন্দ করুন - এটি ইতিমধ্যে লিপ বছর এবং মাসের দৈর্ঘ্য জানে।
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 সম্মেলন); একটি সরঞ্জাম যা ३० দ্বারা ভাগ করে এক বা দুই দিন ভিন্ন হবে।
এটি লিপ বছর এবং ফেব্রুয়ারি २९ জন্মদিন পরিচালনা করে? হ্যাঁ। দিন গণনা পরিসীমা মধ্যে প্রতিটি লিপ দিন অন্তর্ভুক্ত, এবং একটি २९ ফেব্রুয়ারি জন্মদিন অ-লিপ বছরে २८ ফেব্রুয়ারি / १ মার্চের বিরুদ্ধে পরিমাপ করা হয় ওভারফ্লো ছাড়াই।
আমি অতীত বা ভবিষ্যত তারিখে বয়স গণনা করতে পারি? হ্যাঁ - "বয়স তারিখ" ক্ষেত্রটি যেকোনো তারিখে সেট করুন। একটি ভবিষ্যত তারিখ আপনাকে বলে যে আপনি তখন কতবড় হবেন; একটি অতীত তারিখ, আপনি কতবড় ছিলেন।
সময় অঞ্চল সম্পর্কে কী? তারিখগুলি গণনা করার আগে UTC এ স্বাভাবিক করা হয়, তাই সম্পূর্ণ দিন মোট স্থিতিশীল থাকে আপনি যেখানেই থাকুন না কেন বা দিনের আলো-সঞ্চয় পরিবর্তিত হয়েছে।
উৎস
१. Python dateutil — relativedelta (এই সরঞ্জামটি অনুসরণ করে যে ক্যালেন্ডার-বয়স মাস/দিন নিয়ম)।
२. জাভা প্ল্যাটফর্ম — Period.between এবং ChronoUnit.DAYS।
३. মাইক্রোসফট এক্সেল — DATEDIF ফাংশন।
४. MDN ওয়েব ডক্স — Date।
५. Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018।