TheBrain نشر 14 مايو 2016 أرسل تقرير نشر 14 مايو 2016 أريد الحصول على عمر شخص معين عن طريق ادخال بيانات تاريخ ميلاده، فكيف أستطيع فعل ذلك؟ اقتباس
1 E.Nourddine نشر 14 مايو 2016 أرسل تقرير نشر 14 مايو 2016 نعم يمكننا الحصول على عمر شخص معين انطلاقا من استعمال التاريخ Date و Calendar classes -كلاسات الكالندار-، حيث ترتكز هذه الطريقة على أساسيات لغة جافا، والتي يمكن لأي أحد ملمّ بأساسيات اللغة إنجازها. نبدأ بملف Age.java: class Age { private int days; private int months; private int years; private Age() { //الافتراضي constructor } public Age(int days, int months, int years) { this.days = days; this.months = months; this.years = years; } public int getDays() { return this.days; } public int getMonths() { return this.months; } public int getYears() { return this.years; } @Override public String toString() { return years + " Years, " + months + " Months, " + days + " Days"; } } حيث تقبل الوظيفة Age ثلاث عناصر: اليوم، الشهر والسنة أي عناصر التاريخ الأساسية، مع gets و Tostring لتحويل التاريخ إلى نص. الكلاس الثانية هي: AgeCalculator، حيث تقوم هذه الأخيرة بحساب العمر انطلاقا من تاريخ Age بحساب الفرق مقارنة مع تاريخ اليوم: import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class AgeCalculator { private static Age calculateAge(Date birthDate) { int years = 0; int months = 0; int days = 0; // خاص بتاريخ الازدياد المدخل سابقا calendar Calendar birthDay = Calendar.getInstance(); birthDay.setTimeInMillis(birthDate.getTime()); // خاص بتاريخ اليوم calendar long currentTime = System.currentTimeMillis(); Calendar now = Calendar.getInstance(); now.setTimeInMillis(currentTime); //الفرق بين السنوات years = now.get(Calendar.YEAR) - birthDay.get(Calendar.YEAR); int currMonth = now.get(Calendar.MONTH) + 1; int birthMonth = birthDay.get(Calendar.MONTH) + 1; //الفرق بين الأشهر months = currMonth - birthMonth; //فحص فرق الأشهر if (months < 0) { years--; months = 12 - birthMonth + currMonth; if (now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) months--; } else if (months == 0 && now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) { years--; months = 11; } //حساب الفرق بين الأيام if (now.get(Calendar.DATE) > birthDay.get(Calendar.DATE)) days = now.get(Calendar.DATE) - birthDay.get(Calendar.DATE); else if (now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) { int today = now.get(Calendar.DAY_OF_MONTH); now.add(Calendar.MONTH, -1); days = now.getActualMaximum(Calendar.DAY_OF_MONTH) - birthDay.get(Calendar.DAY_OF_MONTH) + today; } else { days = 0; if (months == 12) { years++; months = 0; } } //إنشاء تاريخ ازدياد جديد return new Age(days, months, years); } عملية الحساب انطلاقا من Main: public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Date birthDate = sdf.parse("29/11/1981"); //Yeh !! It's my date of birth :-) Age age = calculateAge(birthDate); //العمر هو System.out.println(age); } } المُخرجات: 32 Years, 5 Months, 27 Days يمكنك أيضا الاعتماد على الطريقة المقدمة هنا. 1 اقتباس
0 هشام رزق الله نشر 14 مايو 2016 أرسل تقرير نشر 14 مايو 2016 توجد عدة طرق لفعل ذلك، فإذا كنت تستخدم الإصدار الثامن من جافا فيمكنك فعل ذلك بكل سهولة عبر حساب عدد السنوات بين تاريخين كما في المثال التالي: LocalDate start = LocalDate.of(1996, 2, 29); LocalDate end = LocalDate.of(2014, 2, 28); // use for age-calculation: LocalDate.now() long years = ChronoUnit.YEARS.between(start, end); System.out.println(years); // 17 أو يمكنك استخدام JODA في حال استخدامك لاصدار جافا أقدم من الإصدار السابق كما في المثال التالي: LocalDate birthdate = new LocalDate(1996, 2, 29); LocalDate now = new LocalDate(2014, 2, 28); // test, in real world without args Years age = Years.yearsBetween(birthdate, now); System.out.println(age.getYears()); توجد طرق أخرى لفعل ذلك لكن ذكرنا هنا أشهرها. اقتباس
0 اشرف حسونه نشر 23 يونيو 2023 أرسل تقرير نشر 23 يونيو 2023 السلام عليكم كيفية الحصول علي العمر من تاريخ الميلاد من خلال برنامج جافا ونت بنز وكيفية كتابة تاريخ الميلاد في text field ولا من خلال formatted field 1 اقتباس
0 Mustafa Suleiman نشر 23 يونيو 2023 أرسل تقرير نشر 23 يونيو 2023 بتاريخ 54 دقائق مضت قال اشرف حسونه: السلام عليكم كيفية الحصول علي العمر من تاريخ الميلاد من خلال برنامج جافا ونت بنز وكيفية كتابة تاريخ الميلاد في text field ولا من خلال formatted field عليك باستخدام مكتبة java.time المتوفرة في Java 8 وما بعدها، واستخدام الكود التالي كنموذج لحساب العمر: import java.time.LocalDate; import java.time.Period; import java.time.format.DateTimeFormatter; public class AgeCalculator { public static void main(String[] args) { // تاريخ الميلاد المُدخل String birthDateStr = "1990-01-01"; // يجب تغييره إلى التاريخ الفعلي المُدخل // تحويل النص إلى تاريخ LocalDate birthDate = LocalDate.parse(birthDateStr); // الحصول على التاريخ الحالي LocalDate currentDate = LocalDate.now(); // حساب العمر باستخدام الفارق بين التواريخ Period age = Period.between(birthDate, currentDate); // عرض العمر بصيغة مناسبة System.out.println("عمر الشخص هو: " + age.getYears() + " سنة، " + age.getMonths() + " شهر، " + age.getDays() + " يوم"); } } وبالنسبة لكتابة تاريخ الميلاد في TextField، فتستطيع استخدام النص العادي في الـ TextField. لكن إذا كنت ترغب في استخدام FormattedTextField لضمان أن المستخدم يدخل التاريخ بتنسيق محدد، فبإمكانك استخدام SimpleDateFormat للتحقق من صحة التنسيق. وإليك مثال عن كيفية استخدام FormattedTextField والتحقق من التنسيق: import java.awt.FlowLayout; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.text.MaskFormatter; public class BirthdayInputExample { public static void main(String[] args) { JFrame frame = new JFrame("إدخال تاريخ الميلاد"); frame.setLayout(new FlowLayout()); try { // تحديد التنسيق المطلوب لتاريخ الميلاد (yyyy-MM-dd) MaskFormatter formatter = new MaskFormatter("####-##-##"); formatter.setPlaceholderCharacter('_'); // إنشاء الـ FormattedTextField JFormattedTextField birthDateField = new JFormattedTextField(formatter); birthDateField.setColumns(10); frame.add(birthDateField); } catch (ParseException e) { e.printStackTrace(); } frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 100); frame.setVisible(true); } } حيث تستخدم MaskFormatter لتحديد التنسيق المطلوب لتاريخ الميلاد، وتعيين حرف النقطة للمساعدة في تحديد موقع الأرقام، ثم استخدام setColumns لتحديد عرض الـ FormattedTextField. اقتباس
0 اشرف حسونه نشر 12 يوليو 2023 أرسل تقرير نشر 12 يوليو 2023 اريد كيفية كتابة الكود في netbeans في text field اخر لاظهار كم عمره 1 اقتباس
0 Mustafa Suleiman نشر 12 يوليو 2023 أرسل تقرير نشر 12 يوليو 2023 بتاريخ 5 ساعة قال اشرف حسونه: اريد كيفية كتابة الكود في netbeans في text field اخر لاظهار كم عمره عليك بإنشاء واجهة المستخدم في NetBeans، واستخدام JFrame و JTextField لإنشاء مربع نص لإدخال تاريخ الميلاد وزر لحساب العمر، عن طريق نافذة الجديدة، اختر "Java" من القائمة الجانبية اليسرى وحدد "Java Application" ثم انقر فوق "الزر التالي". بعد ذلك أضف إلى واجهة المستخدم مربع نص JTextField لإدخال تاريخ الميلاد وزر JButton لحساب العمر. ثم كتابة الكود للحصول على تاريخ الميلاد المدخل وحساب العمر، وسيكون الكود لديك كالتالي بناءًا على الخطوات السابقة: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class AgeCalculator extends JFrame { private JTextField dateOfBirthTextField; private JButton calculateButton; private JLabel ageLabel; public AgeCalculator() { initComponents(); } private void initComponents() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("حاسبة العمر"); JPanel panel = new JPanel(); dateOfBirthTextField = new JTextField(10); calculateButton = new JButton("احسب العمر"); ageLabel = new JLabel(); calculateButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { calculateAge(); } }); panel.add(dateOfBirthTextField); panel.add(calculateButton); panel.add(ageLabel); add(panel); pack(); setVisible(true); } private void calculateAge() { String dateOfBirthStr = dateOfBirthTextField.getText(); DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); try { Date dateOfBirth = dateFormat.parse(dateOfBirthStr); Calendar today = Calendar.getInstance(); Calendar birthDate = Calendar.getInstance(); birthDate.setTime(dateOfBirth); int age = today.get(Calendar.YEAR) - birthDate.get(Calendar.YEAR); if (today.get(Calendar.DAY_OF_YEAR) < birthDate.get(Calendar.DAY_OF_YEAR)) { age--; } ageLabel.setText("عمرك هو " + age + " سنة."); } catch (Exception e) { ageLabel.setText("تاريخ الميلاد غير صالح."); } } public static void main(String[] args) { new AgeCalculator(); } } بعد تشغيل البرنامج ستظهر واجهة المستخدم الخاصة بحاسبة العمر، فقم بإدخال تاريخ الميلاد بتنسيق "dd/MM/yyyy" في مربع النص وانقر على زر "احسب العمر" لعرض العمر في التسمية. ولاحظ أن تنسيق تاريخ الميلاد هو "dd/MM/yyyy"، وفي حال كان تنسيق تاريخ الميلاد لديك مختلفًا، يجب تعديل الكود وفقًا لذلك. اقتباس
0 Bano Ab نشر 22 يونيو أرسل تقرير نشر 22 يونيو اكتب برنامج بلغة جافا يتم ادخال من لوحة المفاتيح لتاريخ الميلاد ل 10 اشخاص ويحسب العمر من تاريخ الميلاد بحيث اذا كان العمر من سنة الى 12 سنة تكون المرحلة طفل و اذا كان العمر من 13 سنة الى 20 سنة المرحلة تكون مراهق من 21 الى 55 المرحلة تكون شاب واكبر من ذالك يكون مسن حيث يعرض الرقم و تاريخ الميلاد والعمر والمرحلة نبيه ببلوجي بس نبيه بسكانر وحلقة for بتاريخ 8 دقائق مضت قال Bano Ab: اكتب برنامج بلغة جافا يتم ادخال من لوحة المفاتيح لتاريخ الميلاد ل 10 اشخاص ويحسب العمر من تاريخ الميلاد بحيث اذا كان العمر من سنة الى 12 سنة تكون المرحلة طفل و اذا كان العمر من 13 سنة الى 20 سنة المرحلة تكون مراهق من 21 الى 55 المرحلة تكون شاب واكبر من ذالك يكون مسن حيث يعرض الرقم و تاريخ الميلاد والعمر والمرحلة نبيه ببلوجي بس نبيه بسكانر وحلقة for اقتباس
السؤال
TheBrain
أريد الحصول على عمر شخص معين عن طريق ادخال بيانات تاريخ ميلاده، فكيف أستطيع فعل ذلك؟
7 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.