رفتن به مطلب

کتابخانه محاسبه گر اوقات شرعی***فوق العاده مهم و کاربردی***


امیرحسین قاسمی

ارسال‌های توصیه شده

سلام،

به مناسبت ماه مبارک رمضان از صبح در حال آماده سازی این کتابخانه هستم که با یک الگوریتم بسیار قوی و بطور باورنکردنی با حداقل خطا(حداکثر 2 دقیقه) اوقات شرعی را در هر نقطه ای از زمین محاسبه می کند.

پارامتر های ورودی موارد زیر می باشند:

  • شماره ماه(از 1 تا 12)-> مثلا فروردین=1
  • روز ماه(از 1 تا 31)-> مثلا 25
  • طول جغرافیایی
  • عرض جغرافیایی
  • تعیین نمایش یا عدم نمایش ثانیه
  • تعیین تاثیر 6 ماه اول و دوم در ساعت یا عدم تاثیر آن

نظیر این کتابخانه در هیچ کجا یافت نمی شود. حتی سورس های محاسبه گر اوقات شرعی نیز یا وجود ندارند یا در صورتی که وجود داشته باشند خیلی کم هستند.

این کتابخانه را برای B4A رپ کرده ام، درآن الگوریتم های فوق پیشرفته ریاضی اقدام به محاسبه آفلاین اوقات شرعی میکنند.اما شما فقط پارامتر ها را وارد خواهید کرد.

این کتابخانه بیشتر برای ساخت تقویم های اذان گو مثل بادصبا بسیار کاربردی و جالب هست!

نکته: طول و عرض جغرافیایی را میتوان در اینترنت برای هر شهر سرچ و جای گذاری کرد یا حتی میتوان با GPS گرفت. همچنین میتوانید طول و عرض جغرافیایی هر شهر را در دیتابیسی ذخیره و از آنجا فراخوانی کنید.(درست مثل خود بادصبا)

سورس برنامه اذانگو رو با این کتابخونه آماده کردم میتونید سورس رو مطالعه بفرمایید:

فایل کتابخانه+سورس پیوست میشود.

هزینه: سه صلوات

رمز فایل: Answercenter.ir

Religious_times.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 17 ساعت قبل، امیرحسین قاسمی گفته است :

سلام،

به مناسبت ماه مبارک رمضان از صبح در حال آماده سازی این کتابخانه هستم که با یک الگوریتم بسیار قوی و بطور باورنکردنی با حداقل خطا(حداکثر 2 دقیقه) اوقات شرعی را در هر نقطه ای از زمین محاسبه می کند.

پارامتر های ورودی موارد زیر می باشند:

  • شماره ماه(از 1 تا 12)-> مثلا فروردین=1
  • روز ماه(از 1 تا 31)-> مثلا 25
  • طول جغرافیایی
  • عرض جغرافیایی
  • تعیین نمایش یا عدم نمایش ثانیه
  • تعیین تاثیر 6 ماه اول و دوم در ساعت یا عدم تاثیر آن

....

سلام. فایل زیپ پسورد داره. ممنون میشم رمز رو اعلام کنین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 17 ساعت قبل، vistamobile گفته است :

سلام. فایل زیپ پسورد داره. ممنون میشم رمز رو اعلام کنین

Answercenter.ir

لینک ارسال
به اشتراک گذاری در سایت های دیگر

باسلام مجدد خدمت همه دوستان عزیز،

برخی از دوستان در تلگرام پیام داده بودن و درخواست کرده بودن که الگوریتم محاسبه اوقات شرعی رو قرار بدم، همینجا قرار میدم:

Sub GetReligious_times(Month As Int,Day As Int,Longitude As Object,latitude As Object,Second_Show As Boolean,Official_time As Boolean) As Object
	Private azan(6) As String
	Private a_1(6) As Object
	If Month=0 Or Month<0 Or Month>12 Then
		Log("Month must be between 1 and 12 -> Input value is invalid for the Month.")
		Return
	End If
	If Day <= 0 Or Day > 31 Then
		Log ("Day must be between 1 and 31 -> Input value is invalid for the Day.")
		Return
	End If
	Private m As Object=Month
	Private d As Object=Day
	Private lg As Object=Longitude
	Private lat As Object=latitude
	Private seconds As Object
	Private dslst As Object
	If Second_Show=True Then
		seconds=1
	Else
		seconds=0
	End If
	If Official_time=True Then
		dslst=1
	Else
		dslst=0
	End If
	Private a_2() As Object=Array("107.695","90.833","0","90.833","94.5","0")
	Private doy_1 As Object

	If m<7 Then
		doy_1=(m-1)+((m-1)*30) + d
	Else
		doy_1=(6)+((m-1)*30) + d
	End If

	Private h As Object=0
	For i=0 To 5

		Private s_m As Object=m
		Private s_lg  As Object=lg
		If i<5 Then

			Private doy As Object=doy_1+(h/24)

			s_m=74.2023+(0.98560026*doy)
			Private s_l As Object=(-2.75043)+(0.98564735*doy)

			Private s_lst As Object=8.3162159+(0.065709824*Floor(doy))+(24.06570984*fmod(doy,1))+(s_lg/15)
			Private s_omega As Object=(4.85131-(0.052954*doy))*0.0174532
			Private s_ep As Object=(23.4384717+(0.00256*Cos(s_omega)))*0.0174532
			Private s_u As Object=s_m

			For s_i=1 To 4
				s_u=s_u-((s_u-s_m-(0.95721*Sin(0.0174532*s_u)))/(1-(0.0167065*Cos(0.0174532*s_u))))
			Next
		
			Private s_v As Object=2*(ATan(Tan(0.00872664*s_u)*1.0168)*57.2957)
			Private s_theta As Object=(s_v-s_m-2.75612-(0.00479*Sin(s_omega))+(0.98564735*doy))*0.0174532
			Private s_delta As Object=ASin(Sin(s_ep)*Sin(s_theta))*57.2957
			Private s_alpha As Object=57.2957*ATan2(Cos(s_ep)*Sin(s_theta),Cos(s_theta))
			If(s_alpha>=360)Then s_alpha=s_alpha-360
			Private s_ha As Object=s_lst-(s_alpha/15)
			Private s_zohr As Object=fmod(h-s_ha,24)
			Private loc2hor As Object

			loc2hor=((ACos(((Cos(0.0174532*a_2(i))-Sin(0.0174532*s_delta)*Sin(0.0174532*lat))/Cos(0.0174532*s_delta)/Cos(0.0174532*lat)))*57.2957)/15)
	
			Private myint2 As Object
			If i<2 Then
				myint2=s_zohr-loc2hor
			Else If i>2 Then
				myint2=s_zohr+loc2hor
			Else
				myint2=s_zohr
			End If

			Private my_azan As String=fmod(myint2,24)
			azan(i)=my_azan
		Else
			
			azan(i)=(azan(0)+azan(3)+24)/2
		End If
			
		Private x As Object=azan(i)
		If dslst=1 And doy_1>1 And doy_1<186 Then
			
			x=x+1
		Else

			dslst=0
		End If
		If(x<0) Then
			x=x+24
		Else if x>=24 Then
			x=x-24
		End If
	
		Private hor As Object=Ceil(x)
		Private ml As Object=fmod(x,1)*60
		Private Min1 As Object=Ceil(ml)
		Private mr As Object=Round(ml)
		Private sec As Object=Ceil(fmod(ml,1)*60)
		
		If hor < 10 Then
			a_1(i)="0"&(hor-1)&":"
		Else
			a_1(i)=""&(hor-1)&":"
		End If

		If seconds=0 Then
			If mr<10 Then
				a_1(i)=a_1(i)&"0"&mr
			Else
				a_1(i)=a_1(i)&""&mr
			End If
		
		Else
			If Min1<"10" Then
				a_1(i)=a_1(i)&"0"&(Min1-1)&":"
			Else
				a_1(i)=a_1(i)&""&(Min1-1)&":"
			End If
			If sec<"10" Then
				a_1(i)=a_1(i)&"0"&(sec-1)
			Else
				a_1(i)=a_1(i)&""&(sec-1)
			End If
		End If
		
		
		If(h="0") Then
			h=azan(i)
			i=i-1
		Else
			h="0"
		End If
	Next
	
	Private output(6) As Object
	For o = 0 To 5
		output(o)=a_1(o)
	Next
	Return output
End Sub

Private Sub fmod(s1 As Object , s2 As Object) As Object
	Return s1 Mod s2
End Sub

یعنی اگر شما همین کدهارو بین دو تا sub قرار بدین دیگه نیازی به کتابخونه نیست. اما استفاده از کتابخونه توصیه میشه چون به مراتب سورس شما منظم تر و برنامه تون بهینه تر میشه. این کدها فقط جنبه آموزشی دارن و در هیچ کجای جهان یافت نمی شوند. خطای این محاسبات حداکثر دو دقیقه می باشد. امیدوارم در آینده دوستان متفکر با ترکیب علوم برنامه نویسی، ریاضی و نجوم، دقت این محاسبات رو بالاتر ببرن.

باتشکر از توجه شما:53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و درود آقای قاسمی عزیز 
امید وارم همیشه موفق باشید و از سورس عالی شما متشکرم

این سورس و کتابخونه کاربردی با طول و عرض جغرافیایی و توضیحاتی در باره اونها کامل و کامل تر خواهد شد 
ممنون میشم اگر مختصری هم روش گرفتم طول عرض جغرافیایی رو به کد ها اضافه کنید و یا پستی در این باره ایجاد کنید و لینک بفرمایید به این کتابخونه
البته با روش های مورد قبول کافه بازار ، چون میدونم که گرفتن موقعیت دقیق از جی پی اس رو اجازه نمیدهند و باید از موقعیت مکانی تقریبی استفاده کنیم 
و یا از آنتن هم فکر میکنم بشه موقعیت رو گرفت که اسم شهر رو برمیگردونه یا ...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، arastooms گفته است :

سلام و درود آقای قاسمی عزیز 
امید وارم همیشه موفق باشید و از سورس عالی شما متشکرم

این سورس و کتابخونه کاربردی با طول و عرض جغرافیایی و توضیحاتی در باره اونها کامل و کامل تر خواهد شد 
ممنون میشم اگر مختصری هم روش گرفتم طول عرض جغرافیایی رو به کد ها اضافه کنید و یا پستی در این باره ایجاد کنید و لینک بفرمایید به این کتابخونه
البته با روش های مورد قبول کافه بازار ، چون میدونم که گرفتن موقعیت دقیق از جی پی اس رو اجازه نمیدهند و باید از موقعیت مکانی تقریبی استفاده کنیم 
و یا از آنتن هم فکر میکنم بشه موقعیت رو گرفت که اسم شهر رو برمیگردونه یا ...

سلام،

ممنون بابت توجه تون

حتما سورس یک برنامه اذانگو رو به زودی که همه شهرهای ایران را پشتیبانی کند، خواهم نوشت و در انسورسنتر به طور رایگان منتشر خواهم کرد.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...