Avatar ·

كيفية حساب عمر الشخص بناءً على تاريخ الميلاد في C#؟

مرحباً بالجميع! أنا مطور C# مبتدئ وواجهت مهمة تبدو بسيطة — حساب عمر المستخدم بناءً على تاريخ ميلاده. لدي متغير `DateTime birthday` (مثلاً `new DateTime(1990, 5, 15)`)، وأحتاج إلى الحصول على عدد صحيح من السنوات الكاملة حتى اليوم. حاولت الطريقة الأكثر وضوحاً — طرح تاريخ الميلاد من التاريخ الحالي وأخذ الفرق بالسنوات: ```csharp DateTime today = DateTime.Today; int age = today.Year - birthday.Year; ``` لكن هذا لا يعمل بشكل صحيح! إذا لم يأتِ عيد ميلاد الشخص بعد هذا العام، فإن العمر يصبح أكبر بسنة واحدة. على سبيل المثال، إذا كان اليوم هو 1 يناير 2025، وعيد الميلاد هو 15 مايو 1990، فإن الكود الخاص بي سيعطي 35 سنة، بينما في الواقع عمر الشخص لا يزال 34. حاولت أيضاً استخدام `TimeSpan`: ```csharp TimeSpan difference = today - birthday; int age = (int)(difference.TotalDays / 365.25); ``` لكن هذا يعطي نتائج غير دقيقة بسبب السنوات الكبيسة والتقريب. أرشدوني كيف