কিভাবে কাউকে কাউকে বয়স C এর মধ্যে গণনা করতে পারি?

একটি প্রদত্ত তারিখের </কোড> একটি ব্যক্তির জন্মদিন প্রতিনিধিত্ব, কিভাবে আমি বছরের মধ্যে তাদের বয়স নিরূপণ করবেন?

0
যোগ সম্পাদিত
মতামত: 14
@ ইয়র: এখনই সময়কে জিএমটি / ইউটিসি-তে রূপান্তর করুন, বয়সটি কেবল একটি আপেক্ষিক মান, তাই টাইমজোন অপ্রাসঙ্গিক। ব্যবহারকারীর বর্তমান টাইমজোন নির্ধারণের জন্য, আপনি GeoLocating ব্যবহার করতে পারেন।
যোগ লেখক Stefan Steiger, উৎস
[জুলিয়ান তারিখ] [1] বিবেচনা করবেন না কেন? [1]: stackoverflow.com/questions/7103064/…
যোগ লেখক Muhammad Hewedy, উৎস
কি উত্তরগুলি এতদূর মিস করা হয়েছে তা নির্ভর করে যে ব্যক্তি কোথায় জন্মগ্রহণ করেছেন এবং কোথায় তারা এখনই সঠিক।
যোগ লেখক Yaur, উৎস
উল্লেখ্য যে এক বছরের কম বয়সী কারো জন্য, তাদের বয়স দিন, সপ্তাহ বা মাসগুলিতে দেওয়া হয়। ইউনিটগুলির জন্য স্থানান্তরণের সময় ডোমেন নির্দিষ্ট হতে পারে।
যোগ লেখক Andrew Morton, উৎস
কেন টাইমস্প্যান ব্যবহার করছেন না?
যোগ লেখক Arijit Mukherjee, উৎস
যদি আমরা ইওর এর ক্রস-টাইমজোন গণনাের বিষয়ে বিবেচনা বিবেচনা করে থাকি, তবে কি দিন হাল্কা সেভিং টাইম কোন পদ্ধতিতে গণনাকে প্রভাবিত করবে?
যোগ লেখক DDM, উৎস
কোন এক লিপ বছর বিবেচনা করেছে? বা মাস পরীক্ষা?
যোগ লেখক Crash Override, উৎস

7 উত্তর

অনেক বছর আগে, আমার ওয়েবসাইটের একটি বয়স ক্যালকুলেটর গিম্মিক প্রদান করার জন্য, আমি বয়সের হিসাব করার জন্য একটি ফাংশন লিখেছিলাম ভগ্নাংশ। এটি এই ফাংশনটির একটি দ্রুত পোর্ট সি # ( থেকে) পিএইচপি সংস্করণ )। আমি ভয় পাই আমি সি # সংস্করণ পরীক্ষা করতে পারবেন না, তবে আশা করি আপনি একই উপভোগ করবেন!

(অবশ্যই এটি স্ট্যাক ওভারফ্লো ব্যবহারকারীর প্রোফাইল প্রদর্শন করার উদ্দেশ্যে একটি বিট প্রতারণামূলক, কিন্তু হয়তো পাঠকরা এটির জন্য কিছু ব্যবহার পাবে। :-))

double AgeDiff(DateTime date1, DateTime date2) {
    double years = date2.Year - date1.Year;

    /*
     * If date2 and date1 + round(date2 - date1) are on different sides
     * of 29 February, then our partial year is considered to have 366
     * days total, otherwise it's 365. Note that 59 is the day number
     * of 29 Feb.
     */
    double fraction = 365
            + (DateTime.IsLeapYear(date2.Year) && date2.DayOfYear >= 59
            && (date1.DayOfYear < 59 || date1.DayOfYear > date2.DayOfYear)
            ? 1 : 0);

    /*
     * The only really nontrivial case is if date1 is in a leap year,
     * and date2 is not. So let's handle the others first.
     */
    if (DateTime.IsLeapYear(date2.Year) == DateTime.IsLeapYear(date1.Year))
        return years + (date2.DayOfYear - date1.DayOfYear) / fraction;

    /*
     * If date2 is in a leap year, but date1 is not and is March or
     * beyond, shift up by a day.
     */
    if (DateTime.IsLeapYear(date2.Year)) {
        return years + (date2.DayOfYear - date1.DayOfYear
                - (date1.DayOfYear >= 59 ? 1 : 0)) / fraction;
    }

    /*
     * If date1 is not on 29 February, shift down date1 by a day if
     * March or later. Proceed normally.
     */
    if (date1.DayOfYear != 59) {
        return years + (date2.DayOfYear - date1.DayOfYear
                + (date1.DayOfYear > 59 ? 1 : 0)) / fraction;
    }

    /*
     * Okay, here date1 is on 29 February, and date2 is not on a leap
     * year. What to do now? On 28 Feb in date2's year, the ``age''
     * should be just shy of a whole number, and on 1 Mar should be
     * just over. Perhaps the easiest way is to a point halfway
     * between those two: 58.5.
     */
    return years + (date2.DayOfYear - 58.5) / fraction;
}
0
যোগ
চমৎকার. যদিও আমি কেবল জ্যোতির্বিদ্যাগত বছরগুলি ব্যবহার করতাম।
যোগ লেখক IllidanS4, উৎস

লিপ বছর এবং সবকিছু যে কারণ আমি জানি যে সেরা উপায় হল:

DateTime birthDate = new DateTime(2000,3,1);
int age = (int)Math.Floor((DateTime.Now - birthDate).TotalDays / 365.25D);

আশাকরি এটা সাহায্য করবে.

0
যোগ

আরেকটি ফাংশন, আমার দ্বারা না কিন্তু ওয়েব পাওয়া যায় এবং এটি একটি বিট পরিমাপ:

public static int GetAge(DateTime birthDate)
{
    DateTime n = DateTime.Now; // To avoid a race condition around midnight
    int age = n.Year - birthDate.Year;

    if (n.Month < birthDate.Month || (n.Month == birthDate.Month && n.Day < birthDate.Day))
        age--;

    return age;
}

শুধু দুটি বিষয় যা আমার মনে আসে: গ্রগরিয়ান ক্যালেন্ডার ব্যবহার করে না এমন দেশগুলির লোকেদের সম্পর্কে? DateTime.Now সার্ভার-নির্দিষ্ট সংস্কৃতিতে আমি মনে করি। আমি আসলেই এশিয়ার ক্যালেন্ডারগুলির সাথে কাজ করার বিষয়ে পুরোপুরি 0 জ্ঞান আছে এবং ক্যালেন্ডারের মধ্যে তারিখগুলির রূপান্তর করার একটি সহজ উপায় আছে কিনা তা আমি জানি না, তবে যদি আপনি 4660 :-) বছর থেকে সেই চীনা লোকেদের সম্পর্কে ভাবছেন তাহলে

0
যোগ
এই বিভিন্ন অঞ্চল (তারিখ বিন্যাস) সেরা
যোগ লেখক webdad3, উৎস

আমি কোন উত্তর না পর্যন্ত মনে করেন যে সংস্কৃতির জন্য বয়স ভিন্নভাবে গণনা করা হয়। দেখুন, উদাহরণস্বরূপ, পশ্চিম এ যে বনাম পশ্চিমবঙ্গের পূর্ব এশিয়ার গণসংযোগের বিবরণ দেখুন।

কোনও বাস্তব উত্তরকে স্থানীয়করণ অন্তর্ভুক্ত করতে হবে।

কৌশল প্যাটার্ন সম্ভবত এই উদাহরণে হতে পারে।

0
যোগ
@ কিছু - কোরিয়ানরা এখনও প্রাথমিকভাবে এই সিস্টেমটি ব্যবহার করে।
যোগ লেখক Justin L., উৎস
প্রকৃতপক্ষে এই ধারণাটি খুবই গুরুত্বপূর্ণ হতে পারে - মানুষ তাদের ব্যক্তিগত তথ্যকে ভুলভাবে বলে বলে পছন্দ করেন না। উদাহরণস্বরূপ, আমার পরিবারের অর্ধেক মালয়েশিয়া এবং যুক্তরাজ্যে অর্ধেক বসবাস করে। এখন আমার বয়স যখন দুইয়ের বেশী, তখন আমি আমার পরিবারের অন্যতম এক অংশের সাথে তুলনা করি।
যোগ লেখক Phil Gan, উৎস
উইকিপিডিয়া নিবন্ধ থেকে আপনি যেটি প্রদান করেছেন: "চীন ও জাপানতে এটি ঐতিহ্যগত ভাগ্য বা ধর্মের জন্য ব্যবহার করা হয় এবং এটি শহরের মানুষের মধ্যে দৈনন্দিন জীবনে অদৃশ্য হয়ে যায়।"
যোগ লেখক some, উৎস
কেবলমাত্র আমাদের এই ব্যবস্থা মূলত কোরিয়াতে ব্যবহৃত হয়নি, কিন্তু স্থানীয়দের সাথে বয়সের সাথে একটি পর্যটক হিসাবে কথা বলে, স্থানীয়রা তাদের জন্ম বছরের দ্বারা নিয়মিতভাবে একে অপরকে বোঝায়। আমি 25 না, আমি 87 নই। আমি এই পদ্ধতি ভাল ভালো লেগেছে। আরও একটি 'আন্তর্জাতিক জন্মতারিখ সময় বিন্যাস'
যোগ লেখক Dean Rather, উৎস
এমনকি কোরিয়াতেও, যখন এই ব্যবস্থা জনপ্রিয়ভাবে নৈমিত্তিক কথোপকথনে ব্যবহৃত হয়, তখন আইনি উদ্দেশ্যে (যেমন, মদ্যপের বয়স) পাশ্চাত্য হিসেব ব্যবহার করা হয়। তাই আমি মনে করি শুধু একটি সংস্কৃতি সুইচ flipping আপনি যা ইচ্ছা না একটি সুন্দর ভাল উপায়।
যোগ লেখক Casey, উৎস

এটি করতে একটি অদ্ভুত উপায়, কিন্তু যদি আপনি yyyymmdd তে তারিখটি বিন্যাস করে এবং বর্তমান তারিখ থেকে জন্ম তারিখটি বিয়োগ করে থাকেন তবে শেষ 4 ডিজিটের ড্রাফটটি আপনার বয়স পেয়েছে :)

আমি সি # জানি না, কিন্তু আমি বিশ্বাস করি যে এটি কোন ভাষায় কাজ করবে।

20080814 - 19800703 = 280111 

শেষ 4 টি সংখ্যা ড্রপ করুন = 28

সি # কোড:

int now = int.Parse(DateTime.Now.ToString("yyyyMMdd"));
int dob = int.Parse(dateOfBirth.ToString("yyyyMMdd"));
int age = (now - dob) / 10000;

অথবা বিকল্পভাবে একটি এক্সটেনশন পদ্ধতির আকারে সব ধরনের রূপান্তর ছাড়াই। বাতিল ত্রুটি পরীক্ষা:

public static Int32 GetAge(this DateTime dateOfBirth)
{
    var today = DateTime.Today;

    var a = (today.Year * 100 + today.Month) * 100 + today.Day;
    var b = (dateOfBirth.Year * 100 + dateOfBirth.Month) * 100 + dateOfBirth.Day;

    return (a - b) / 10000;
}
0
যোগ
এটি একটি প্যারামিটার যোগ করা ভাল: float.Parse (x, CultureInfo.InvariantCulture) কারণ কিছু স্থানীয়রা ডিফল্টের জন্য ডট পরিবর্তে ফ্রাঞ্চাল সংখ্যাগুলিতে কমা ব্যবহার করে
যোগ লেখক krvladislav, উৎস
খুব পুরানো পোস্ট int age = (এখন - dob) / 10000; জন্য প্রশ্ন জিজ্ঞাসা কেন আপনি 10000 দ্বারা subtracts?
যোগ লেখক Monojit Sarkar, উৎস
তারিখ সময়। ম্যাক্সভ্যালু বছর 9999 হয়, মিনিভ্যালু বছর 1, ওভারফ্লো সম্ভব নয়।
যোগ লেখক Antonín Lejsek, উৎস
প্রকৃতপক্ষে এটি ডেটটাইম-ক্ষেত্রগুলির সাথে MS-SQL ব্যবহার করার জন্য মহান (01-011900 সাল থেকে সম্পূর্ণ দিন)
যোগ লেখক Patrik Eckebrecht, উৎস
@ নুমরেক আপনার প্রস্তাবিত পরিবর্তনগুলি তাদের নিজের উত্তর হিসাবে পোস্ট করুন। এটা কি মূল্যের জন্য, বর্তমান বছরের সময় 10000 একটি পূর্ণসংখ্যা ওভারফ্লো কাছাকাছি হয় না, মাত্রা দুটি আদেশ দ্বারা। ২0,150,000 বনাম ২,147,483,648
যোগ লেখক GalacticCowboy, উৎস
yyyymmdd এর জন্য Horray। আমি এই বিন্যাসে একটি P ersonal C omputer (প্রায় 1981) সংরক্ষণ তারিখগুলিতে ব্যবহৃত প্রথম ডাটাবেস পণ্য। যেকোনো ধরনের তারিখ ম্যানিপুলেশন এত সহজ ছিল।
যোগ লেখক radarbob, উৎস
আপনার বিকল্প উত্তরটিতে, আপনি বছরগুলি বিয়োগ করে পূর্ণ সংখ্যা অতিক্রম করে * 30.5 + দিন বন্টন করতে পারেন এবং 366 দ্বারা বিভাজিত করতে পারেন।
যোগ লেখক numerek, উৎস
এই উত্তরটি অনুমান করা হয় যে লিপ দিবসের শিশুদের 1 লা মার্চ নোয়া-লিপ বছরগুলিতে তাদের জন্মদিন রয়েছে।
যোগ লেখক Jamie Kitson, উৎস

একটি সহজ বুঝতে এবং সহজ সমাধান।

// Save today's date.
var today = DateTime.Today;
// Calculate the age.
var age = today.Year - birthdate.Year;
// Go back to the year the person was born in case of a leap year
if (birthdate > today.AddYears(-age)) age--;

যাইহোক, এটি অনুমান করে আপনি পশ্চিম বয়স সম্পর্কে ধারণা খুঁজছেন এবং পূর্ব এশীয় গণনা

0
যোগ
@ জেএজি: ডেট টাইম। আজকে আরও দ্রুত হওয়া উচিত।
যোগ লেখক Shimmy, উৎস
এই কোডটি নিকটতম বয়স গণনা করা হয় না। এখানে, কোড: var ts = DateTime.Now - নতুন তারিখ টাইম (1988, 3, 19); var বয়স = গণিত। রাউন্ড (ts.Days / 365.0);
যোগ লেখক Dhaval Panchal, উৎস
আমি আর আমার মন্তব্য সম্পাদনা করতে পারছি না, তাই এখানে আমার সংশোধন: সময়সীমা পার্থক্য = বিষয়। জন্মদিন - তারিখ টাইম। এখন; int age = পার্থক্য। দিন; আপনি যদি বছরগুলিতে চান তবে আপনি সবসময় int age যোগ করতে পারেন = বছর / 365;
যোগ লেখক Nolonar, উৎস
এটা শুধু করতে সহজ হবে না তারিখ সময় তারিখ বিভাজন = বিষয়। জন্মদিন - তারিখ টাইম। এখন; int age = dateDifference.Year; ? এছাড়াও, আমি মনে করি না বয়স লিপ বছর উপর নির্ভর করে। সব পরে, একটি বছর হিসাবে সংজ্ঞায়িত করা হয় 365 <�এক্স <366 দিন, লিপ বছর আপনি কোন দিন ছোট না।
যোগ লেখক Nolonar, উৎস
বা শুধু যদি (জন্মদিন। ডাইঅফায়ার> আজ। ডায়ো ওয়াইয়ার); তারিখ ভেরিয়েবল সংশোধন করার প্রয়োজন নেই
যোগ লেখক NKCSS, উৎস
@ ড্যানভিল, এটা সত্যিই ভুল? একটি সহজ উদাহরণ নিন। জন্মদিন = 2000/02/29, আজ = ২001/0২/28। দিন অতিবাহিত: 365. যে এক বছর, এবং সেইজন্য, 28th একটি বছর বয়সী ব্যক্তি নয়? অথবা 365-1 / 4 দিন এক বছরের সংজ্ঞা কি? আমি শুধু বলছি, এটা জটিল।
যোগ লেখক devuxer, উৎস
শেষ লাইনে আমাকে অনেকটা ভাবতে হয়েছে। পরিবর্তে কিভাবে: যদি (bday.Addyears (বয়স)> এখন) বয়স -; এটি একটি আরো বোধগম্য অভিব্যক্তি বলে মনে হচ্ছে।
যোগ লেখক cdiggins, উৎস
বছরের মধ্যে বয়স পরিমাপের ধারণাটি কেবল একটি অশুচি মিথ্যা কারণ এটি লিপের বছরগুলির হিসাব গ্রহণ করে না। আমাদের দিনে বয়স পরিমাপ করা উচিত।
যোগ লেখক Melbourne Developer, উৎস
@ লিগেন্ডস, উত্তরটি তুলে ধরার চেয়ে আরো ধারণাগুলি তৈরি করা হচ্ছে, এবং আপনার ক্ষেত্রে যদি এটি যথাযথ হয় তবে যদি এইগুলি অনুমান আপনার ক্ষেত্রে রাখা থাকে। আপনার ক্ষেত্রে বুদ্ধিমান ছাড়া, এটি ছাড়া অন্য কারো জন্য এটি একটি হ্যাঁ বা কোন উত্তর চালু করতে অসম্ভব।
যোগ লেখক hvd, উৎস
@ লিকটো'ব্রায়েন <�কোড> যদি (বার্ড> আজ। যুগ যুগ ধরে (বয়স)) - </ কোড> এই উত্তরের অংশটি তার যত্ন নেবে বলে মনে করা হয়। বয়স </ কোড> হবে 10 সেই সময়ে, যা বছরের সংখ্যাগুলির পার্থক্যের উপর ভিত্তি করে। যদি জন্মদিন (ডিসেম্বর 1990) 10 বছর আগে (যা মার্চ 1990 হবে) এর পরে হয়, তাহলে বয়স </ কোড> 9 এ হ্রাস পায়। আপনি যে আপনার জন্য কাজ না বলছে?
যোগ লেখক hvd, উৎস
এই সমাধানের উপরে উপরের 1400 টি upvotes সঠিক, কারণ আমি মন্তব্য বিভাগ থেকে পড়তে পারেন এই সমাধান সঙ্গে কিছু সমস্যা আছে ...?
যোগ লেখক Legends, উৎস
এই উত্তরটি বিবেচনায় নেওয়া হয় না - যদি 1990 সালের ডিসেম্বরে আমার জন্ম হয় এবং আজকের ২000 সালের মার্চ মাসে আমার বয়স 9 এবং 10 না হয় তবে আমার জন্মদিন এখনো হয়নি
যোগ লেখক Luke T O'Brien, উৎস
তাই আমাদের বিভিন্ন দেশ এবং ক্যালেন্ডার অনুযায়ী একটি ভিন্ন বয়স আছে? কি একটি স্কপ ...
যোগ লেখক e-satis, উৎস
@ লার্সড "বর্তমান দেশগুলির জন্মের পরে বেশ কয়েকটি দেশে তারিখ বাদে" <- মানে কি?
যোগ লেখক cja, উৎস
@ রোব আমি অনুমান করছি আপনি ঠিক বলেছেন, কিন্তু এটি স্পষ্টতা একটি প্রশ্ন, সাধারণত আপনার জন্মদিন একটি নির্দিষ্ট দিনে 00:00 - 23:59:59 থেকে যে কোন সময় গণনা।
যোগ লেখক Tristan Warner-Smith, উৎস
আমরা আপনাকে জন্মদিনের কথা বলছি শুধুমাত্র আপনি DateTime ব্যবহার করতে পারেন। আজকে দেওয়া অংশটি কোন প্রাসঙ্গিকতা নেই।
যোগ লেখক Tristan Warner-Smith, উৎস
দ্রুত মজা ফ্যাক্ট: এই উত্তরটি এই pluralsight কোর্সে বৈশিষ্ট্যযুক্ত হয়েছে 'গুলি, মডিউল 5 - অধ্যায় 3।
যোগ লেখক displayName, উৎস
এই সমাধান কি মাসগুলোকেও খুঁজছে? অন্যথায় এটি ক্লড করা +/- 1 বছর
যোগ লেখক alpham8, উৎস
@ সিজা - এর অর্থ হল কিছু দেশ ক্যালেন্ডার সিঙ্ক করার জন্য এবং বিচ্ছিন্নতা মুছে ফেলার কয়েক বছর আগে কিছু মজা করেছিল! en.wikipedia.org/wiki/Gregorian_calendar এটি সম্পর্কে আরো কথা বলতে পারে, আমি সম্পূর্ণরূপে না পড়ুন। 'বর্তমান জনগণ' এর রেফারেন্স কেবল বলে যে বিংশ শতাব্দীতে (1901-2000) সমন্বয় ঘটেছিল। এতদিন পর্যন্ত অনেক মানুষ বেঁচে আছে! :)
যোগ লেখক bPratik, উৎস
কেন টাইমস্প্যান ব্যবহার করবেন না?
যোগ লেখক gldraphael, উৎস
@ এন কেসএসএস: এটি লিপ ইয়ার সঠিকভাবে পরিচালনা করে না। আমার পরীক্ষা দেখায় যে শুধুমাত্র যদি (bday> এখন। আরও কয়েক বছর (-)) কাজ করে যেহেতু দিনঅফায়ার </ কোড> ২015 এ 61 এবং 60 1 মার্চ ২011 এর জন্য আসে
যোগ লেখক Guvante, উৎস
এই উত্তর সব স্থানীয় এবং সব বয়সের সাথে কাজ করে না। রাশিয়া (1 9 18), গ্রীস (19২4) এবং তুরস্ক (19২6) সহ বর্তমান বাসিন্দাদের জন্মের পর বেশ কয়েকটি দেশে তারিখ বাদ পড়েছে।
যোগ লেখক Lars D, উৎস
@ লর্ডস, আপনি কি বলছেন যে মানুষের বয়স গণনা করার কোন উপায় নেই? আবর্জনা। তারা তাদের ক্যালেন্ডার সঙ্গে বিদ্রূপ, তারা সংশোধন করতে পারেন। এমনকি আপনি লোকেলের উপর ভিত্তি করে ক্রস ক্যালেন্ডার গণনা করার জন্য একটি লাইব্রেরি করতে পারেন, ক) আপনি এই তথ্য উত্স যেখানে b) এটা আসলে এটি মূল্য কি?
যোগ লেখক Gusdor, উৎস
@ ত্রিস্তানউনার-স্মিথ ওয়েল, টেকনিক্যালি এটি করে। আপনি 1 জানুয়ারি 1 লা জানুয়ারি 1 টায় জন্মগ্রহণ করেন, আপনি জানুয়ার 1, 1২ সেপ্টেম্বর 1991-এ আছেন, তবে 1 জানুয়ারী 1 টা 1 টা 1991 এ।
যোগ লেখক Rob, উৎস
তারিখ সময় জন্ম তারিখ = নতুন তারিখ সময় (2012, 11, 5); তারিখ সময় এখন = তারিখ টাইম। এখন; int বছর = এখন। বছর - জন্ম তারিখ। বছর; যদি (এখন.মোথ <�জন্ম তারিখ। মনোনয়ন || (এখন.মোথ == জন্ম তারিখ। মনস্থ && এখন। দিন <�জন্ম তারিখ) দিন); Console.WriteLine (years.ToString ()); Console.ReadLine ();
যোগ লেখক Shaik Raffi, উৎস
ইংল্যান্ড ও ওয়েলসে বা হংকংয়ে, ফেব্রুয়ারি ২9 তারিখে জন্মগ্রহণকারী একজন ব্যক্তি 1 মার্চ মার্চ 18 তারিখে বৈধভাবে 18 বছর বয়সে পৌঁছাবে। যদি সে তাইওয়ানে জন্মগ্রহণ করে তবে তিনি অথবা সে বৈধভাবে 18 শে ফেব্রুয়ারি, । ( উইকিপিডিয়া ) সুতরাং জন্মদিন। আরও বছর (বয়স) > আজ </ কোড> এবং জন্মতারিখ আজ। অতিরিক্ত বছর (-যা) </ কোড> অধিকার ও অধিকার উভয়টি, অধিকার ক্ষেত্রের উপর নির্ভর করে।
যোগ লেখক Daniel Liuzzi, উৎস
শুধু DateTime নেভিগেশন মন্তব্য চেয়েছিলেন। এখন কর্মক্ষমতা যদি আপনি একটি সঠিক সময় জোন মান প্রয়োজন না হয়, DateTime.Utc ব্যবহার করুন এখন এটি অনেক দ্রুত।
যোগ লেখক JAG, উৎস
int age = তারিখ টাইম। আজ। বছর - bday.Year; বয়স = বেলা> তারিখটি টাইম। আজ। আরো কিছু বছর (-যা))? বয়স -: বয়স; </ কোড>
যোগ লেখক Travis, উৎস
ভাল ধারণা cdiggins, কিন্তু এটি bday.Addyears (বয়স) হিসাবে কাজ করে না যখন বয়স ২/29 বছর 2/28 ফেরত যা বছর ধরে না ... চেষ্টা চালিয়ে যান
যোগ লেখক Mike Polen, উৎস
প্রকৃতপক্ষে, এটি এখনও সম্পূর্ণরূপে সঠিক নয়। এই কোডটি অনুমান করা হয় যে 'জন্মদিন' একটি তারিখের তারিখের অংশ। এটি একটি প্রান্ত-কেস (আমি মনে করি অধিকাংশ লোকই শুধু তারিখগুলি পূরণ করবে না), কিন্তু যদি আপনি তারিখ এবং সময় হিসাবে জন্মদিনে পাস করেন যে সময়টি 00:00:00 এর চেয়ে বড় তাহলে আপনি ' ড্যানভিলের দিকে তাকালাম। Bday = bday.Date সেট করুন এই সংশোধন করে।
যোগ লেখক Øyvind, উৎস
@ রোব মার্কিন যুক্তরাষ্ট্রে, অন্তত, আপনার জন্মদিনে, আপনার জন্মদিনে যখন কোনদিন জন্মগ্রহণ করা হয় তখন আপনাকে গৃহীত হয়, আপনি বছরগুলিতে পরবর্তী বয়স বলে মনে করা হয়। এমনকি যদি 1 জানুয়ারী 11:59 টায় জন্ম হয়, তবে নতুন বছরের পার্টিতে যখন বলটি ড্রপ হয়ে যায়, তখন প্রত্যেকেই স্বীকার করবে যে আপনার বয়স পরিবর্তিত হয়েছে যদিও আপনি এখনও আপনার জন্মের সময় ২4 ঘণ্টার কম। :) আইনত, একটি ব্যক্তি হিসাবে তাদের জন্মদিনে একটি বছর পুরোনো বলে বলা হয়। তা চালানোর জন্য 16 জন, অথবা ২1 জন ভোটার বা 18 জন ভোট দিতে হবে কিনা। আপনি জন্ম হয় কি সময় কোন ব্যাপার না। আপনার জন্মদিনে আপনি বছর বয়সী হন।
যোগ লেখক jfren484, উৎস
আপনার শেষ শর্ত জন্ম তারিখ> এখন। আরো কিছু বছর (-গ্রী) আমি আপনার পোস্টের কারণে দ্রুত পেয়েছিলাম !! অনেক ধন্যবাদ
যোগ লেখক Avdhut Vaidya, উৎস

এই সংস্করণ আমরা এখানে ব্যবহার। এটি কাজ করে, এবং এটি মোটামুটি সহজ। এটা জাফ এর মতই ধারণা, কিন্তু আমি মনে করি এটি একটু পরিষ্কার কারণ এটি একটিকে বিয়োগ করার জন্য যুক্তিটি আলাদা করে দেয়, তাই এটি বুঝতে একটু সহজ।

public static int GetAge(this DateTime dateOfBirth, DateTime dateAsAt)
{
    return dateAsAt.Year - dateOfBirth.Year - (dateOfBirth.DayOfYear < dateAsAt.DayOfYear ? 0 : 1);
}

আপনি এটা আরও পরিষ্কার করার জন্য টিয়ারারি অপারেটর প্রসারিত করতে পারে, যদি আপনি মনে করেন যে সাজানোর জিনিস অস্পষ্ট।

স্পষ্টত এইটি তারিখ টাইম </কোড> এ এক্সটেনশন পদ্ধতি হিসাবে করা হয়, তবে স্পষ্টতই আপনি সেই এক লাইনের কোডটি ধরতে পারেন যা কাজ করে এবং এটি কোথাও রাখে এখানে আমাদের এক্সটেনশন পদ্ধতির আরেকটি ভারসাম্য রয়েছে যা কোডটি তারিখের মধ্যে চলে। এখন , সম্পূর্ণতার জন্য।

0
যোগ
আমি মনে করি এই একদিন বন্ধ হতে পারে যখন তারিখের ঠিক এক তারিখ বা তারিখ একটি লিপ বছরে পড়ে। ২ মার্চ, ২003 সালের 1 মার্চ ২003 সালের ২ মার্চ ২008 তারিখে জন্মগ্রহণকারী ব্যক্তির বয়স বিবেচনা করুন। এটি সংশোধন করার জন্য, আপনাকে (মাস, দিনঅফমোথ) জোড়ার একটি সংযোজনীয় তুলনা করতে হবে এবং শর্তসাপেক্ষের জন্য এটি ব্যবহার করতে হবে।
যোগ লেখক Doug McClean, উৎস
এটা আপনার জন্মদিন হিসাবে সঠিক বয়স প্রদর্শন করতে যাচ্ছে না।
যোগ লেখক dotjoe, উৎস