المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : برنامج برنامجي للتذكير بالاذان بمناسبة رمضان الكريم


MHDM
2013-06-15, 23:23
http://im34.gulfup.com/gs04M.png



بمناسبة حلول الشهر الكريم

شهر رمضان

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

للتذكير بالاذان

اتمنى منكم الدعاء الصالح فقط لا اكثر

http://im39.gulfup.com/T0tZ1.png


ايقونة البرنامج

http://im42.gulfup.com/Z2jJQ.png


واجهة البرنامج
http://im42.gulfup.com/liLQo.png



تعديل الوقت كل يوم على حسب منطقتك


http://im42.gulfup.com/jzsQV.png

التذكير بالاذان يبقى شغالا الى حين اطفاء الجهاز

http://im39.gulfup.com/T0tZ1.png


تحميل البرنامج

http://im34.gulfup.com/8KRWT.png (http://www.gulfup.com/?wvoyPN)




اللهم بلغنا رمضان

http://im31.gulfup.com/xvuLf.png

http://im31.gulfup.com/1Oh4M.gif

حميد.ص
2013-06-15, 23:25
بارك الله فيك

MHDM
2013-06-15, 23:33
وفيك بركة نورت الموضوع

__الهاوي__
2013-06-16, 06:46
الفكرة أعجبتني كثيرا لكن أن يضبط المستخدم الوقت كل مرة فهذا ما يفقد البرنامج صفة المذكر الآلي
ماذا لو كان يحسب الوقت لوحده؟ أكيد سؤالك: كيف لي ذلك؟
برنامج أذان مثلا يسجل في ملفات xml كل بيانات الدول والمقاطعات حسب خطوط الطول ودوائر العرض وبالتالي يسجل الآذان وفق دوال حسابية. لم أبحث في ذلك لكن أظن أن الفكرة تحتاج للبحث...
إن كنت مهتما بهذا فإليك ملف كل ولايات الجزائر

__الهاوي__
2013-06-16, 07:08
أتعرف، الموضوع أعقد مما تصورت
هذا مشروع ويحتاج لتحليل ودراسة
على كل، من يرد المزيد من المعلومات فلقد وجدت هذا البحث
http://www.4shared.com/file/229852609/de45cbb8/____.html

كما وجدت مثالا بالسي شارب بعد إلقاء نظرة خفيفة وجدته يحتاج كوده للضبط، فلقد وضعه البعض على مدوناتهم لكنهم لا يعلمون أنه يحوي syntax errors. لكنني أدونه لكل مهتم بالفكرة:
على فكرة، لكل من يفهم الفي بي يمكنه تحميل برامج تحويل السي شارب إلى في بي


using System;
using System.Collections.Generic;
using System.Text;
namespace MyClock
class CalcPrayerTimes
double Local_Noon;
double Asr_Time;
double Esha_Time;
double Fajr_Time;
double Sun_Set;
double Sun_Rise;
public CalcPrayerTimes(int Year, int Month, int Day,double Long,double Lat, double Zone)
double D = (367 * Year) - ((Year + (int)((Month + 9) / 12)) * 7 / 4) + (((int)(275 * Month / 9)) + Day - 730531.5);
double L = (280.461 + 0.9856474 * D)%360;
L = LessMore360(L);
double M = (357.528 + 0.9856003 * D)%360;
M = LessMore360(M);
double Lambda = L + 1.915 * Math.Sin(ToRadian(M)) + 0.02 * Math.Sin(ToRadian(2 * M));
Lambda = LessMore360(Lambda);
double Obliquity = 23.439 - 0.0000004 * D;
double Alpha = ToDegree(Math.Atan((Math.Cos(ToRadian(Obliquity)) * Math.Tan(ToRadian(Lambda)))));//////
Alpha = LessMore360(Alpha);
Alpha = Alpha - (360*(int)(Alpha /360));
Alpha = (Alpha + 90 * (Math.Floor(Lambda / 90) - Math.Floor(Alpha / 90)));
double ST = (100.46 + 0.985647352 * D)%360;
double Dec = ToDegree(Math.Asin(Math.Sin(ToRadian(Obliquity)) * Math.Sin(ToRadian(Lambda))));
double Durinal_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-0.8333)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat)))));
double Noon = Alpha - ST;
Noon = LessMore360(Noon);
double UT_Noon = Noon - Long;
Local_Noon = UT_Noon /15 + Zone;
double Asr_Alt = ToDegree(Math.Atan(1 + Math.Tan(ToRadian(Lat - Dec))));
double Asr_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(90 - Asr_Alt)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat)))));
Asr_Arc = Asr_Arc / 15;
Asr_Time = Local_Noon + Asr_Arc;
Sun_Rise = Local_Noon - (Durinal_Arc / 15);
Sun_Set = Local_Noon + (Durinal_Arc /15);
double Esha_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-18)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat)))));
Esha_Time = Local_Noon +( Esha_Arc /15);
double Fajr_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-18)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat)))));
Fajr_Time = Local_Noon - (Fajr_Arc /15);
public double ToRadian(double Value)
return (Value * Math.PI / 180);
public double ToDegree(double Value)
return (Value * 180 / Math.PI );
public double LessMore360(double Value)
if (Value <= 0 || Value > 360)
{ return (Value + 360); }
else
return Value;
public int LocalNoonHour
get
return ((int)(Local_Noon));
public int LocalNoonMin
get
return (int)(((Local_Noon) - (int)Local_Noon) * 60);
public int AsrHour
get
return ((int)(Asr_Time));
public int AsrMin
get
return (int)(((Asr_Time) - (int)(Asr_Time)) * 60);
public int SunRiseHour
get
return ((int)(Sun_Rise));
public int SunRiseMinr
get
return (int)(((Sun_Rise) - (int)(Sun_Rise)) * 60);
public int SunSetHour
get
return ((int)(Sun_Set));
public int SunSetMin
get
return (int)(((Sun_Set) - (int)(Sun_Set)) * 60);
public int FajrHour
get
return ((int)(Fajr_Time));
public int FajrMin
get
return (int)(((Fajr_Time) - (int)(Fajr_Time)) * 60);
public int EshaHour
get
return ((int)(Esha_Time));
public int EshaMin
get
return (int)(((Esha_Time) - (int)(Esha_Time)) * 60);


لي عودة إن شاء الله للموضوع.
أنا الآن مشغول بارشا بارشا :1:

MHDM
2013-06-16, 12:18
شكرا على معلوماتك اخي الهاوي

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

ساضيف تعديلات في النسخة الاحقة ان شاء الله

كالعادة شكرا لاهتمامك والمعلومات المقدمة

مرورك يشرفني

مروان 1989
2013-06-17, 19:51
شكراااااااا ونرجو المزيد

boudbouz2
2013-06-17, 22:26
شكراااااااا ونرجو المزيد

MHDM
2013-06-19, 22:40
بارك الله فيك

شكراااااااا ونرجو المزيد

شكراااااااا ونرجو المزيد

شكرا لمروركم

bachir2138
2013-06-20, 18:41
شكرا لك اخي

بلعربي يوسف
2013-06-28, 12:31
شكرا لك أخي و بارك الله فيك

amouna.sem
2013-07-08, 18:00
بارك الله فيك

sousoumoumou
2013-07-13, 18:02
يمكن جعله يبدأ مع بدأ التشغيل بإضافة اختصار الى قائمة بدأ السشغيل

sousoumoumou
2013-07-13, 18:05
استعمل برنامج
nsis.sourceforge.net/Main_Page
لصنع المثبت

sousoumoumou
2013-07-13, 18:06
هل برنامجك يضبط الاوقات آليا بمرور الايام ؟؟

MHDM
2013-07-16, 00:58
شكرا لك اخي

شكرا لك أخي و بارك الله فيك

بارك الله فيك



شكرا لمروركم

رمضان كريم

MHDM
2013-07-16, 01:00
يمكن جعله يبدأ مع بدأ التشغيل بإضافة اختصار الى قائمة بدأ السشغيل

استعمل برنامج
nsis.sourceforge.net/main_page
لصنع المثبت

هل برنامجك يضبط الاوقات آليا بمرور الايام ؟؟

بالنسبة لردك الاول البرنامج يعمل مع بدئ نضام التشغيل

الرد الثاني البرنامج يثبت

الرد الثالث لايحتفظ بالوقت تلقائي والسبب مذكور في ردودي

رمضان كريم

شكرا لمروركم

__الهاوي__
2013-07-18, 17:00
السلام عليكم
وعدتكم بالعودة للموضوع ووعد الحر دين عليه.
ها أنذا أعود للموضوع، كنت أتمنى أن أنجح في التحدي لكنني فشلت
الكود الذي أشرت إليه سابقا والذي أنجزه البعض وضعته في كلاس منفصل وقمت بتصحيح الـsyntax

كلاس حساب الزمن الموجود في بعض المواقع دون شرح:

class CalcPrayerTimes
{
double Local_Noon;
double Asr_Time;
double Esha_Time;
double Fajr_Time;
double Sun_Set;
double Sun_Rise;
public CalcPrayerTimes(int Year, int Month, int Day, double Long, double Lat, double Zone)
{
double D = (367 * Year) - ((Year + (int)((Month + 9) / 12)) * 7 / 4) + (((int)(275 * Month / 9)) + Day - 730531.5);
double L = (280.461 + 0.9856474 * D) % 360;
L = LessMore360(L);
double M = (357.528 + 0.9856003 * D) % 360;
M = LessMore360(M);
double Lambda = L + 1.915 * Math.Sin(ToRadian(M)) + 0.02 * Math.Sin(ToRadian(2 * M));
Lambda = LessMore360(Lambda);
double Obliquity = 23.439 - 0.0000004 * D;
double Alpha = ToDegree(Math.Atan((Math.Cos(ToRadian(Obliquity)) * Math.Tan(ToRadian(Lambda)))));//////
Alpha = LessMore360(Alpha);
Alpha = Alpha - (360 * (int)(Alpha / 360));
Alpha = (Alpha + 90 * (Math.Floor(Lambda / 90) - Math.Floor(Alpha / 90)));
double ST = (100.46 + 0.985647352 * D) % 360;
double Dec = ToDegree(Math.Asin(Math.Sin(ToRadian(Obliquity)) * Math.Sin(ToRadian(Lambda))));
double Durinal_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-0.8333)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat)))));
double Noon = Alpha - ST;
Noon = LessMore360(Noon);
double UT_Noon = Noon - Long;
Local_Noon = UT_Noon / 15 + Zone;
double Asr_Alt = ToDegree(Math.Atan(1 + Math.Tan(ToRadian(Lat - Dec))));
double Asr_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(90 - Asr_Alt)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat)))));
Asr_Arc = Asr_Arc / 15;
Asr_Time = Local_Noon + Asr_Arc;
Sun_Rise = Local_Noon - (Durinal_Arc / 15);
Sun_Set = Local_Noon + (Durinal_Arc / 15);
double Esha_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-18)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat)))));
Esha_Time = Local_Noon + (Esha_Arc / 15);
double Fajr_Arc = ToDegree(Math.Acos((Math.Sin(ToRadian(-18)) - Math.Sin(ToRadian(Dec)) * Math.Sin(ToRadian(Lat))) / (Math.Cos(ToRadian(Dec)) * Math.Cos(ToRadian(Lat)))));
Fajr_Time = Local_Noon - (Fajr_Arc / 15);
}
public double ToRadian(double Value)
{
return (Value * Math.PI / 180);
}
public double ToDegree(double Value)
{
return (Value * 180 / Math.PI);
}
public double LessMore360(double Value)
{
if (Value <= 0 || Value > 360)
{ return (Value + 360); }
else
return Value;
}
public int LocalNoonHour
{
get
{
return ((int)(Local_Noon));
}
}
public int LocalNoonMin
{
get
{
return (int)(((Local_Noon) - (int)Local_Noon) * 60);
}
}
public int AsrHour
{
get
{
return ((int)(Asr_Time));
}
}
public int AsrMin
{
get
{
return (int)(((Asr_Time) - (int)(Asr_Time)) * 60);
}
}
public int SunRiseHour
{
get
{
return ((int)(Sun_Rise));
}
}
public int SunRiseMinr
{
get
{
return (int)(((Sun_Rise) - (int)(Sun_Rise)) * 60);
}
}
public int SunSetHour
{
get
{
return ((int)(Sun_Set));
}
}
public int SunSetMin
{
get
{
return (int)(((Sun_Set) - (int)(Sun_Set)) * 60);
}
}
public int FajrHour
{
get
{
return ((int)(Fajr_Time));
}
}
public int FajrMin
{
get
{
return (int)(((Fajr_Time) - (int)(Fajr_Time)) * 60);
}
}
public int EshaHour
{
get
{
return ((int)(Esha_Time));
}
}
public int EshaMin
{
get
{
return (int)(((Esha_Time) - (int)(Esha_Time)) * 60);
}
}
}

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

أتابع لمن يهمه الامر
ثم عملت تطبيقا صغيرا يستخرج البيانات من ملف xml يحوي كل ولايات الجزائر وأتابع معكم الكود سطرا سطرا

private void AthanForm_Load(object sender, EventArgs e)
{
lblDay.Text = DateTime.Now.ToLongDateString();// الحصول على تاريخ اليوم على هيئة حروف

string myXMLfile = "algeria.xml";// متغير يحمل اسم ملف الإكس أم أل
DataSet ds = new DataSet(); // تهيئة داتاست وهي عبارة عند قاعدة بيانات في الذاكرة
ds.ReadXml(myXMLfile);// بناء الداتاسات اعتمادا على هيكل الإكس أم أل

cbWilaya.DataSource = ds.Tables[0];// ربط الكومبوبوكس بالجدول الاول للداتاست
cbWilaya.DisplayMember = "name";// عرض اسم الولاية في الكومبوبوكس
}





private void cbWilaya_SelectedIndexChanged(object sender, EventArgs e)
{
int index = cbWilaya.SelectedIndex;// الحصول على إندكس الولاية

int Year = DateTime.Now.Year;// الحصول على السنة الحالية
int Month = DateTime.Now.Month;// الحصول علي الشهر الحالي
int Day = DateTime.Now.Day;// الحصول على اليوم الحالي
double Long = Convert.ToDouble(ds.Tables[0].Rows[index]["longitude"]);// استخلاص قيمة خط الطول للولاية
double Lat = Convert.ToDouble(ds.Tables[0].Rows[index]["latitude"]) ;// استخلاص قيمة دائرة العرض للولاية

calculator = new CalcPrayerTimes(Year, Month, Day, Long, Lat, 100.0);// هنا نستدعي الكلاس الجاهز الذي يحسب أوقات الصلاة

lblFajr.Text = calculator.FajrHour.ToString();// الحصول على الساعة فقط من الكلاس
lblLocalNoon.Text = calculator.LocalNoonHour.ToString();// الحصول على الساعة فقط من الكلاس
lblAsr.Text = calculator.AsrHour.ToString();// الحصول على الساعة فقط من الكلاس
lblSunSet.Text=calculator.SunSetHour.ToString();// الحصول على الساعة فقط من الكلاس
lblEsha.Text=calculator.EshaHour.ToString();// الحصول على الساعة فقط من الكلاس
}



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

وضعته هنا ليكون عونا لمن يريد مستقبلا أن يبرمج هذا البرنامج بصورة آلية

التطبيق والسورس في المرفقات

بالتوفيق للجميع
ورمضان كريم

chicouche
2013-07-24, 16:12
برنامج رائع جعله الله في ميزان حسناتك و تعمل على تطويره

بلخير92
2013-07-25, 16:57
merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiiiiiiiiiiiiiiiiiii

ASKme
2013-07-30, 14:26
برمجة سيئة جدا
وما نفعه اذا كان التغيير يدوي ؟

MHDM
2013-07-31, 00:41
برمجة سيئة جدا
وما نفعه اذا كان التغيير يدوي ؟

اخي المحترم

شكرا على انتقادك يا مبدع

انا في طريق اتمام نسخة متكاملة تتوفر على جميع الخصائص

رمضان كريم