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

برنامج C# يطلب من المستخدم ادخال سنة ميلاده ثم يحسب عمره

AM0

السؤال

Recommended Posts

  • 0

مرحبًا @AM0

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

DateTime dob = Convert.ToDateTime("1990/12/12");  
string text = CalculateYourAge(dob);  
int age = CalculateAge(dob);  
    
/// يقوم هذا التابع بحساب العمر من تاريخ الميلاد
/// أدخل تاريخ الميلاد الخاص بك لحساب العمر 
/// بالسنوات، الأشهر، الأيام والساعات  
/// المتغير dob هو تاريخ ميلادك
static string CalculateYourAge(DateTime Dob) {  
    DateTime Now = DateTime.Now;  
    int Years = new DateTime(DateTime.Now.Subtract(Dob).Ticks).Year - 1;  
    DateTime PastYearDate = Dob.AddYears(Years);  
    int Months = 0;  
  /// تقوم الحلقة for هنا بعد الأشهر لكل سنة لإظهر العمر بالأشهر
    for (int i = 1; i <= 12; i++) {  
        if (PastYearDate.AddMonths(i) == Now) {  
            Months = i;  
            break;  
        } else if (PastYearDate.AddMonths(i) >= Now) {  
            Months = i - 1;  
            break;  
        }  
    }  
  
  /// طباعة الناتج وتحديد فورمات الخرج
    int Days = Now.Subtract(PastYearDate.AddMonths(Months)).Days;  
    int Hours = Now.Subtract(PastYearDate).Hours;  
    int Minutes = Now.Subtract(PastYearDate).Minutes;  
    int Seconds = Now.Subtract(PastYearDate).Seconds;  
    return String.Format("Age: {0} Year(s) {1} Month(s) {2} Day(s) {3} Hour(s) {4} Second(s)",  
    Years, Months, Days, Hours, Seconds);  
}  

أما إن كنت ترغب فقط بحساب العمر بالسنين بدون الأشهر والأيام يمكنك استخدام البرنامج التالي،

DateTime dob = Convert.ToDateTime("1990/12/12");  
string text = CalculateYourAge(dob);  
int age = CalculateAge(dob); 

/// يقوم هذا التابع بحساب العمر من تاريخ الميلاد
/// أدخل تاريخ الميلاد الخاص بك لحساب العمر 
/// حساب العمر بالسنوات فقط 
/// المتغير dob هو تاريخ ميلادك

private static int CalculateAge(DateTime dateOfBirth)  
{  
    int age = 0;  
    age = DateTime.Now.Year - dateOfBirth.Year;  
    if (DateTime.Now.DayOfYear < dateOfBirth.DayOfYear)  
        age = age - 1;  
  
    return age;  
}  

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
 public static string GetDateSpanText(DateTime fromDate, DateTime toDate = default(DateTime))
        {
            try
            {
                int years = 0;
                int months = 0;
                int days = 0;
                if (toDate == new DateTime())
                {
                    toDate = DateTime.Now;
                }

                while (!(toDate.AddYears(-1) < fromDate))
                {
                    years += 1;
                    toDate = toDate.AddYears(-1);
                }

                while (!(toDate.AddMonths(-1) < fromDate))
                {
                    months += 1;
                    toDate = toDate.AddMonths(-1);
                }

                while (!(toDate.AddDays(-1) < fromDate))
                {
                    days += 1;
                    toDate = toDate.AddDays(-1);
                }

                return string.Format("{0} Years {1} Months {2} Days", years, months, days);
            }
            catch (Exception ex)
            {
                return "Error";
            }
        }
        private void getage()
        {
            DateTime doj = new DateTime();
            DateTime dor = new DateTime();
            doj = dateTimePicker1.Value;
            dor = DateTime.Now;
            edt_age.Text = (GetDateSpanText(doj, dor));
        }
                                                        
                                                        
                                                         private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            getage();
        }

        private void edt_age_TextChanged(object sender, EventArgs e)
        {
            getage();
        }

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...