الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

من فضلكم .....ممكن؟؟؟

مغلق
بدأه ليدي في 14 نوفمبر 2002 · 3 رد · 733 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

لو سمحتوا عندي مسألة .........وأريد مساعدتكم

public class Time {

private int hour, minute;

public Time (int h, int m) { hour = h; minute = m; }



public Time addMinutes (int m) {

int totalMinutes = (60*hour + minute + m) % (24*60);

if (totalMinutes < 0)

totalMinutes = totalMinutes + 24*60;

return new Time(totalMinutes/60, totalMinutes%60);

}



public void printTime () {

if ((hour == 0) && (minute == 0))

System.out.print("midnight");

else if ((hour == 12) && (minute == 0))

System.out.print("noon");

else {

if (hour == 0) System.out.print(12);

else if (hour > 12) System.out.print(hour-12);

else System.out.print(hour);

if (minute < 10) System.out.print(":0" + minute);

else System.out.print(":" + minute);

if (hour < 12) System.out.print("AM");

else System.out.print("PM");

}

  }

}

ونريد نسوي لها application program الي يخليها لما نشغلها تطبع لنا في dialog box الرسالة التالية ....

Your next appointment is, at “the current time AM/PM”

The program repeats printing this message every 45 minute between 9:00 Am and 1:30 PM.

وشكرا لكم ..... خصوصا أني لم أعرف كيف اتوصل للحل ....

وجزاكم الله خيرا

تحياتي

Lady

#2

هلا ليدى فى معسكرنا الصغير.

اولا قمت بتحسين عرض الكود حتى يراه الأخوة بتركيز افضل

ثانيا من الملاحظ على البرنامج عدم وجود الدالة main وهى نقطة تنفيذ اى برنامج جافا و بالتالى ستحتاجين الى الحقاها مع الكلاس

ايضا سنحتاج الى Timer لإظهار الرسالة كل 45 دقيقة كما هو مطلوب فمن المستحسن هنا هو أستخدام الكلاس Timer فى ذلك و التى تستدعى الدالة actionPerformed حق الليسنر كل فترة زمنية محددة و بالتالى تستطيعين وضع كود اظهار الرسالة بداخلها.

ارجوا ان يكون العرض هذا مفيدا اى عقبات لا تترددى فى الأستفسار

خالد المصرى

#3

أهلين

أولا مشكور أخي خالد على الرد ...

ثانيا ... أنت قصدك أني أكتب الكود على طريقة أبلت وللا شو ؟؟

وأنا الكود اللي كاتبته هو عبارة عن definition فقط .. عشان جيه ما فيه ال main

فأنا أريد أن أعرض الرسالة في dialog box لذلك يجب أن يكون application وليس applet

وحتى الآن لم أتوصل للحل ....:( :o

#4

بسم الله الرحمن الرحيم

انا عدلت بعض الشئ في الكلاس

Time

الذي عملتيه

وعملت كلاس application

حتى انه يطبق ما تريدين

لكن هو ناقص بعض الاشياء

اولا

اريد

method

تحدد اذا كان الوقت AM

او PM

بعد اضافة ال 45 دقيقة

ايضا هذا البرنامج اذا الوقت الحالي ليس

9 صباحا

سوف يتوقف البرنامج !

فلا أدري هل هذا هو ماتريدين او لا

عموما هذا برنامج الاول وقد اضفت اليه بعض ال

Method

public class Time {

private int hour, minute;
String out="";

public Time (int h, int m) 

{ hour = h; minute = m; }


public int  getH()
{
	return hour;
}

public int getM()
{
	return minute;
}

public Time addMinutes (int m) {

int totalMinutes = (60*hour + minute + m) % (24*60);

if (totalMinutes < 0)

totalMinutes = totalMinutes + 24*60;

return new Time(totalMinutes/60, totalMinutes%60);

}

public String show()
{
	if ((hour == 0) && (minute == 0))

out="midnight";

else if ((hour == 12) && (minute == 0))

out="noon";

else {

if (hour == 0) out="12";

else if (hour > 12) out=""+(hour-12);

else out=""+hour;

if (minute < 10) out=out+":0"+minute;

else out=out+":" + minute;

if (hour < 12) out=out+"AM";

else out=out+"PM";



}
return out;
}

public void printTime () {

if ((hour == 0) && (minute == 0))

System.out.print("midnight");

else if ((hour == 12) && (minute == 0))

System.out.print("noon");

else {

if (hour == 0) System.out.print(12);

else if (hour > 12) System.out.print(hour-12);

else System.out.print(hour);

if (minute < 10) System.out.print(":0" + minute);

else System.out.print(":" + minute);

if (hour < 12) System.out.print("AM");

else System.out.print("PM");

}

}

}

وهذا البرنامج الثاني الذي عملته

import java.util.*;
import javax.swing.*;
public class A extends Thread
{
	public static void main (String[]args) throws InterruptedException
	{
		A  th = new A();
		Calendar r = Calendar.getInstance();
		Time T = new Time(r.get(Calendar.HOUR_OF_DAY),r.get(Calendar.MINUTE));
		if(T.getH()==9 && r.AM==1)
		{
	         while(T.getH()!=1 && T.getM()<30)
	         {
	         	T=T.addMinutes(45);
	         JOptionPane.showMessageDialog(null,"Your next appointment is, at "+T.show(),"Time",JOptionPane.INFORMATION_MESSAGE);	
			 A.sleep(45*6081000);// it will sleep for 45 min
			}
			System.exit(0);
		}

		else
		{
			System.out.println("the time is not 9 am , the programme will exit");
			System.exit(0);
		}


	}
}

وتستطيعين تغيير

بعض الاشياء مثل الشرط الخاص بان يكون الوقت الحالي

هو

التاسعة صباحا

مثلا تغيرين

الرقم 9 الى الساعة الحالية لديك

وايضا

في ال Method

Sleep

انا وضعت التأخير 45 دقيقة

تستطيعين تغييره الى

10000

وهذا معناه عشر ثواني وذلك فقط للتجربة

وكما قلت البرنامج يحتاج تعديل من ناحية انه

مثلا

اذا كان الوقت بعد اضافة ال 45 دقيقة هو

الواحدة والنصف AM

فأن البرنامج سوف يتوقف لان المشكلة في البرنامج انه

لا يستطيع التفريق بين

AM و PM

يحتاج تعديل بسيط

لكن انا تعبت الان :'(

وهذا هو ملف يحتوي الكود الاول

اضغط هنا للكود الاول

وهذا ملف يحتوي الكود الثاني

اضغط هنا للكود الثاني

هذا الموضوع مغلق.

مواضيع مشابهة