اذهب إلى المحتوى

السؤال

نشر

أريد الحصول على عمر الشخص من خلال تاريخ ولادته، جرّبت إجراء عملية طرح تاريخ اليوم من تاريخ الولادة ومن ثم قسمة عدد الأيام على 365 لكن العمر لم يكن دقيقا لوجود سنوات كبيسة بها 366 يوم، فكيف أستطيع الحصول على عمر دقيق لشخص ما؟

Recommended Posts

  • 0
نشر

هنالك حلول مختلفة لحل هذه المشكلة في لغة الروبي، فمثلا يمكنك طرح السنة الحالية من سنة ميلاد الشخص الذي تريده ومن ثم تقوم باختبار هل فات يوم ميلاده أم لا Kلتعرف عمره بالضبط كما في المثال التالي:

    age = Date.today.year - birthday.year
    age -= 1 if Date.today < birthday + age.years #for days before birthday

هذا الحل سهل ولا تحتاج إلى القلق من التعامل مع السنوات الكبيسة.
وإذا كنت تستخدم ريلز (ROR) فيمكنك في هذه الحالة حل هذه المشكلة بسهولة دون مشاكل ودون التفكير في السنوات الكبيسة كما في المثال التالي:

def age(birthday)
  (Time.now.to_s(:number).to_i - birthday.to_time.to_s(:number).to_i)/10e9.to_i
end


انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...