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

السؤال

Recommended Posts

  • 0
نشر

مرحبًا @Rehab Essam،

يمكنك حساب العمر بطريقة سهلة جدًا،

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>برنامج جافا سكريبت لحساب العمر </title>
</head>
<body>

</body>
</html>

فقط قم بكتابة تاريخ الميلاد مكان الإدخال المظهر في الأسفل وسوف يقوم البرنامج بطباعة العمر في أوامر الطرفية الخاصة بصفحة HTML

function calculate_age(dob) { 
    var diff_ms = Date.now() - dob.getTime(); // أخذ الوقت الحالي وطرح الزمن الزائد منه من أشهر وأيام
    var age_dt = new Date(diff_ms); // إدخال المتغير diff_ms كمتغير زمن
  
    return Math.abs(age_dt.getUTCFullYear() - 1970); 
}

console.log(calculate_age(new Date(1990, 10, 4))); //ادخل تاريخ الميلاد
// output: 30
console.log(calculate_age(new Date(1950, 1, 1))); // ادخل تاريخ الميلاد
// output: 80

 

  • 0
نشر

يمكنك القيام بذلك باستخدام التابع التالي:

var birth_month = promt("Month of birth:");
var birth_day = promt("Day of birth:");
var birth_year = promt("Year of birth:");


// نقوم بإنشاء دالة لحساب العمر و نمرر لها المعاملات التالية:شهر الميلاد - يوم الميلاد - عام الميلاد
function calculate_age(birth_month,birth_day,birth_year)
{
  // today_date و نخزنه في المتغير Date في المتغير التالي نحصل على تاريخ اليوم باستخدام الدالة 
    var today_date = new Date();
  
  // today_year من تاريخ اليوم  نحصل على رقم العام الحالي و نخزنه في المتغير
    var today_year = today_date.getFullYear();
  
   // today_month من تاريخ اليوم نحصل على رقم الشهر الحالي و نخزنه في المتغير
    var today_month = today_date.getMonth();
  
  // today_day من تاريخ اليوم نحصل على رقم اليوم الحالي و نخزنه في المتغير
    var today_day = today_date.getDate();
  // age بعدها نقوم بحساب العمر بطرح عام الميلاد من العام الحالي و نُخزن القيمة في المتغير 
    var age = today_year - birth_year;
  

  // بعدها نستخدم الجمل الشرطية التالية لحساب العمر بدقة 
  
    if ( today_month < (birth_month - 1)) {
      // بمقدار 1 age إذا كان الشهر الحالي أقل من شهر الميلاد مطروح منه واحد نقوم بإنقاص قيمة المتغر 
    
        age--;
    }
    if (((birth_month - 1) == today_month) && (today_day < birth_day)) {
      
    
        age--;
    }
    return age;
}


// إذا كنتِ لم تتعلمي عن الدوال بعد يمكنك استخدام هذا الكود كما يلي

var birth_month = promt("Month of birth:");
var birth_day = promt("Day of birth:");
var birth_year = promt("Year of birth:");



// today_date و نخزنه في المتغير Date في المتغير التالي نحصل على تاريخ اليوم باستخدام الدالة 
var today_date = new Date();

// today_year من تاريخ اليوم  نحصل على رقم العام الحالي و نخزنه في المتغير
var today_year = today_date.getFullYear();

// today_month من تاريخ اليوم نحصل على رقم الشهر الحالي و نخزنه في المتغير
var today_month = today_date.getMonth();

// today_day من تاريخ اليوم نحصل على رقم اليوم الحالي و نخزنه في المتغير
var today_day = today_date.getDate();
// age بعدها نقوم بحساب العمر بطرح عام الميلاد من العام الحالي و نُخزن القيمة في المتغير 
var age = today_year - birth_year;


// بعدها نستخدم الجمل الشرطية التالية لحساب العمر بدقة 

if ( today_month < (birth_month - 1)) {
  // بمقدار 1 age إذا كان الشهر الحالي أقل من شهر الميلاد مطروح منه واحد نقوم بإنقاص قيمة المتغر 

  age--;
}
if (((birth_month - 1) == today_month) && (today_day < birth_day)) {

  age--;
}

console.log(age);

أو 

function getAge(dateString) 
{
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) 
    {
        age--;
    }
    return age;
}

 

  • 0
نشر
بتاريخ 7 ساعات قال Rehab Essam:

شكرا جزيلا 
ولاكن هل يمكن عمله بدون function |
لاني وصلت لدرس else و else if ولم اصل الى الfunction

لا يمكن ذلك يجب عليك استخدام ولو حتى التوابع البسيطة مثل Date() و getFullYear() وذلك لكي تستطيع على الأقل من أخذ الوقت الحالي وتحويله إلى السنين ومن ثم حساب العمر باستخدام if و else كما ذكرت.

لكن الدوال تسهل كثيرًا هذه الطريقة، وسوف تتعلمين أكثر عنها في مراحل قادمة.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...