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

السؤال

نشر (معدل)

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

تم التعديل في بواسطة omar haddad
كان العنوان c#

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...