بالاخره کد محاسبه اوقات شرعی و نمایش آب و هوا رو نوشتم!!!

amir01

Well-Known Member
سلام بچه ها!
بالاخره بعد از کلی تلاش تونستم کد نمایش آب و هوا و محاسبه اوقات شرعی شهرها و کشورها رو بنویسم.
آب و هوا رو که نمیشد کاریش کرد یه کد نوشتم که از سایت یاهو خروجی میگیره همچنین پیش بینی هوای یک روز آینده رو هم داره.
اوقات شرعی هم با استفاده از طول و عرض جغرافیایی منطقه و روز و ماه، زمان اذان صبح، طلوع آفتاب، اذان ظهر، غروب آفتاب و اذان مغرب رو میده که حدود 12 تا تابع شد (از جایی استفاده نمیکنه خودش محاسبه میکنه).
برای دیدن دموی این دو میتونید از لینک های زیر استفاده کنید :

آب و هوا : http://www.veb.ir/A/Weather
اوقات شرعی : http://www.veb.ir/A/Owghat

لازم به ذکره که برای نمایش آب و هوا یه فرم گذاشتم که شهر رو انتخاب میکنید ولی بره اوقات شرعی فعلا از طریق GET اطلاعات رو میگیره(حسش نبود فرم بنویسم!!). برای نمونه آدرس زیر اوقات شرعی شهر تهران رو در روز یازدهم شهریور میده :
http://veb.ir/A/Owghat/?City=12&Day=11&Month=6
کدهای شهرها رو هم به ترتیب حروف الفبا نوشتم که از کد 1 (اراک) شروع شده و با کد 30 (یزد) تموم میشه.

امیدوارم که تونسته باشم کمکی به برنامه نویسان این سرزمین کرده باشم. همیشه خوب باشید... یاحق
 

irdavidnet

Banned
امیر آقا اونی که نوشتی ، با یاهو هست منم سورسشو دارم :
کد:
<html>
<meta http-equiv="Content-Language" content="fa">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<body>
<font face="Tahoma"><span style="font-size: 9pt">
<script type="text/javascript">
function LoadWeather(city) {
	try {
	    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
	} catch (e) {}
	var req = null;


	try {
	  req = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	  try {
	    req = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (e2) {
	    req = false;
	  }
	}


	if (!req && typeof XMLHttpRequest != 'undefined') {
	  req = new XMLHttpRequest();
	}


	var url = "http://xml.weather.yahoo.com/forecastrss?p=" + city + "&u=c";
	req.open("GET", url, true);
	req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	req.onreadystatechange = ShowResult;
	try {
	req.overrideMimeType("text/xml");
	} catch(ex) { }
	req.send(null);

	function ShowResult() {
		try {
			netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
		} catch(ex) { }
		if (req.readyState == 4) 
		   if(req.status == 200) {
			xml = req.responseXML;

			elchannel = xml.getElementsByTagName("rss").item(0).getElementsByTagName("channel").item(0);
			elitem = elchannel.getElementsByTagName("item").item(0);
			desc = elitem.getElementsByTagName("description").item(0);
			if(desc.textContent) {
				// for firefox
				document.getElementById("WeatherContainer").innerHTML = desc.textContent;
				document.getElementById("CityName").innerHTML = elchannel.getElementsByTagName("title").item(0).textContent;
			}
			else {
				// for ie
				document.getElementById("WeatherContainer").innerHTML = desc.childNodes[0].text;
				document.getElementById("CityName").innerHTML = elchannel.getElementsByTagName("title").item(0).text;
			}
		   }
	}
}
</script>

<select style="font-family: Tahoma; color: #000000; border: 1px solid #DCDCDC; padding-bottom:2px" id="Cities">
	<option value="IRXX0001">آبادان</option>
	<option value="IRXX0030">اراک</option>
	<option value="IRXX0023">ارومیه</option>
	<option value="IRXX0003">اصفهان</option>
	<option value="IRXX0032">اهواز</option>
	<option value="IRXX0033">بندر عباس</option>
	<option value="IRXX0016">تبریز</option>
	<option value="IRXX0018">تهران</option>
	<option value="IRXX0020">زاهدان</option>
	<option value="IRXX0024">زنجان</option>
	<option value="IRXX0015">شیراز</option>
	<option value="IRXX0004">کرمان</option>
	<option value="IRXX0029">کرمانشاه</option>
	<option value="IRXX0006">کرج</option>
	<option value="IRXX0008">مشهد</option>
	<option value="IRXX0019">یزد</option>
</select>&nbsp;&nbsp;</span></font>
<button onclick="LoadWeather(Cities.options[Cities.options.selectedIndex].value); return false;">
<font face="Tahoma" style="font-size: 9pt">Load Weather</font></button>
<font face="Tahoma" style="font-size: 9pt">
</font>
<br>
دمای هوا به صورت سانتیگراد است</font><h3 id="CityName"></h3>
<div style="border: solid 1px black; width: 300px" id="WeatherContainer"></div>
<font face="Tahoma" style="font-size: 9pt">
<br>
Programmer : David Mozafari . <a href="http://www.iroveb.com">www.iroveb.com</a></font></body>
</html>
 

RainDigital

Member
ادعا که نکردی خودت نوشتی من از همون اول که نوشت تا اون موقع که آپلود کرد، میدونستم چی کار میکنه یعنی با هم مشورت میکردیم و من شاهدم که خودش نوشته و سئرسشم یاهو هست درسته. از سایت یاهو در میاره. توی cms ش هم که اسمش ایرانه گزاشته فکر کنم بلوکش رو توی آلوچه هم گزاشته
(www.alooche.veb.ir)

شما همیشه هر سورسی گیر میاری پایینش یه دیوید مظفری مینویسی خلاص . آقا من کد نوشتم من کد نوشتم من کد نوشتم...
 

amir01

Well-Known Member
آقای irdavidnet :
اولا که من این تاپیک رو برای کل کل باز نکردم که شما اومدی همچین گفتی انگار که من کد شما رو دزدیدم. خب شما هم نوشتی که نوشتی دستت درد نکنه.
دوما خدا میدونه که این کدی که اینجا کپی کردی رو خودت نوشتی یا نه!! آخه بعضی موقع ها یه سوالاتی تو انجمن می پرسی که بلد نیستی و اینقدر سادس که آدم شاخ در میاره و بعضی موقع ها یه کد هایی میذاری مثل این که هم توش آیجکس داره هم پی اچ پی که نوشتنش کلی وقت گیره که بازم آدم شاخ در میاره که شمایی که این کدها رو نوشتی چجوری تو اون سوالات ساده موندی؟؟؟!! حالا به من مربوط نیست. همینجوری گفتم. احتمال زیاد هم اشتباه قضاوت کردم. خوش باشید. یاحق
 

YTERROR

Active Member
قای irdavidnet :
اولا که من این تاپیک رو برای کل کل باز نکردم که شما اومدی همچین گفتی انگار که من کد شما رو دزدیدم. خب شما هم نوشتی که نوشتی دستت درد نکنه.
دوما خدا میدونه که این کدی که اینجا کپی کردی رو خودت نوشتی یا نه!! آخه بعضی موقع ها یه سوالاتی تو انجمن می پرسی که بلد نیستی و اینقدر سادس که آدم شاخ در میاره و بعضی موقع ها یه کد هایی میذاری مثل این که هم توش آیجکس داره هم پی اچ پی که نوشتنش کلی وقت گیره که بازم آدم شاخ در میاره که شمایی که این کدها رو نوشتی چجوری تو اون سوالات ساده موندی؟؟؟!! حالا به من مربوط نیست. همینجوری گفتم. احتمال زیاد هم اشتباه قضاوت کردم. خوش باشید. یاحق

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

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

حامد و ..... فکر کنم منتظر کد شما هتسند آقا امیر اگر تمایل به گزاشتن دارید بگزارید با مپی رایت خودتون

موفق و پیروز باشید
 

iroweb

Member
منم حرف Yterror همشريمو تاييد ميكنم . بهتره كد ها رو بزاري امير جون . البته آب و هواش كه ريخته . اگر توي همين مجيد آنلاين يك سرچ بزني پيدا ميكني . ولي اوقات شرعيت بايد تابعي كه ازش استفاده كردي جالب باشه .
 

irdavidnet

Banned
عزیز من گفتم ، سورسشو دارم ، نگفتم خودم نوشتم !
من که نخواستم کل کل کنم !
گفتم اگه میشه کدشو بذارید لطفاً ، اوقات رو منظورمه
 

.:: Ali ::.

Member
تشوبق !

البته كمكي به برنامه نويسان اين سرزمين نكرديد ؛ اما به كاربران اينترنت اين سرزمين چرا ؛ اما باز اينجور كمك ها خيلي وقته كه شده !!!
 

irdavidnet

Banned
دوستان من که سرچ زدم ، نمونه کدی که گذاشتم (آب و هوا) که به صورت آژاکس هست رو پیدا نکردم ...
منتظر باشید می خوام ، آب و هوا رو براتون بذارم ... بزودی ....
دوستان فقط این کد رو اگه هرجا می ذارید ، کپی رایتشم رعایت کنید لطفاً
یه تشکر هم می کردید بابت پست بد نبود ! :lol:
 

jhoseini

Member
دوستان من که سرچ زدم ، نمونه کدی که گذاشتم (آب و هوا) که به صورت آژاکس هست رو پیدا نکردم ...
منتظر باشید می خوام ، آب و هوا رو براتون بذارم ... بزودی ....
دوستان فقط این کد رو اگه هرجا می ذارید ، کپی رایتشم رعایت کنید لطفاً
یه تشکر هم می کردید بابت پست بد نبود ! :lol:
خوب، بنویسید بعد پست بزنید، این چه کاریه آخه ملتو میکشید اینجا الکی
2mo5pow.gif
 

drremo

New Member
سلام
اگه لطف کنی سورس کد اوقات شرعی رو هم بزاری خیلی حال دادی
یه جماعت زیادی دعاگوی شما میشن
 

RainDigital

Member
jhosseini میگه وقتی پیدا کردی پست بده اینطوری هم اسپمه هم ملت از چشم انتظاری میمیرن
 

khodabakhsh

New Member
امیر آقا برای چی کدش رو روی سایت نمی گذاری
بگو بگو بگو
تا ببینیم چی شده؟؟؟
 

ghasembaghi

Member
اینجا همه بلدند پز بدند
یکی مردی کنه این کد اوقات شرعی را بزاره ملت حالشو ببرند
 

Zanguei

Member
الگوریتم محاسبه اوقات شرعی به زبان Php

خوب از اونجایی که امیر آقایی که این تاپیک رو ایجاد کردند ولی کدی رو در اختیار دوستان نگذاشتند من برای اینکه این تاپیک یک سودی داشته باشه کد اوقات شرعی که به زبان Perl داشتم به PHP تبدیل کردم.
در تبدیل این کد با توجه به مقالات مختلفی که در این زمینه خوندم و مقایسه با سورس کدهای Java ، CPP و JavaScript که در این خصوص پیدا کرده بودم تغییراتی برای اصلاح و بهبود آن با موقعیت ایران انجام دادم. با توجه به زحماتی که برنامه نویسان اولیه برای این الگوریتم کشیدند فکر می کنم ضریب خطای آن بسیار پایین است با این وجود احتیاط 2± دقیفه لازم است.
برای استفاده از آن و محاسبه زمان اوقات شرعی برای هر محل باید 5 مورد زیر در نظر گرفته شود:
1. طول جغرافیایی محل (Longitude)
2. عرض جغرافیایی محل (Latitude)
3. ارتفاع محل از سطح دریا (Altitude)
4. اختلاف زمانی با گرینویچ (Time Zone)
5. تغییر ساعت در اوایل فصول بهار و پاییز (Daylight Saving)
برای به دست آوردن موارد یک تا سه میتونید از سایت زیر کمک بگیرید:
http://heavens-above.com
همچنین در آدرس زیر برنامه ای به زبان VB6 وجود داره که میتونه موارد یک تا سه رو از سایت بالا روی کامپیوترتون در یک فایل TXT و به صورت CSV ذخیره کنه. برنامه ای به نام GeoMaker:
http://www.islamware.com/download/GeoMaker.exe
در هنگام استفاده از برنامه بالا باید مراقب باشید که در حین دریافت اطلاعات ارتباطتون از اینترنت قطع نشه و گر نه پس از قطع شدن نمیتونید گرفتن اطلاعات رو از ادامه شروع کنید و تا اونجایی که گرفته رو بیشتر در اختیارتون نمیذاره مگر اینکه از اول شروع کنید. من خودم هنوز نتونستم مشخصات جغرافیایی شهرهای ایران رو به طور کامل DL کنم. حجم کمی داره اما زمان زیادی برای دریافت میبره. اگر دوستی گرفت اینجا بذاره تا دیگران هم استفاده کنند.

اما کد برنامه رو که یه صورت یک کلاس هست و برای هر دو ویرایش PHP5 و PHP4 در دو فایل جداگانه ذخیره شده است میتونید از آدرس زیر دانلود کنید:
http://projects.pooyaweb.com/ptc/ptc.tar.gz

موفق باشید.
---------------
زنگوئی
 
آخرین ویرایش:

Zanguei

Member
دوباره سلام
راستی یادم شد بگم دوستانی که در شهرهای دیگه هستند خوشحال میشم که این کد رو با محل خودشون تست کنند و نتیجه رو به من بگن. البته باید بگم که اون دمویی که آقا امیر برای نمایش اوقات شرعی گذاشتند زمان اوقات شرعی تهران رو با اختلاف زیادی نسبت به واقعیت نشون میده.
باز هم موفق باشید
 

.:: Ali ::.

Member
ممنون دوست من ، من خروجي زير رو از sample گرفتم :
کد:
Fajr: 04:59 am
Sunrise: 06:25 am
Dhuhr: 12:39 pm
Asr: 04:08 pm
Sunset: 06:47 pm
Maghrib: 07:07 pm
Isha: 08:18 pm
Midnight: 12:03 am

آدرس http://heavens-above.com/countries.asp هم كار نمي كنه . زياد رو سورس برنامه تون دقيق نشدم ، اما بهتر بود از كتابخانه اي متغيرهايي كه بهش اشاره كردين ، براي هر شهر درش تعبيه مي شد و نام شهر و تاريخ و ساعت كنوني رو هم به صورت اختياري قابل نمايش مي بود .

به هر حال زحمت كشيدين ، ممنونم .
 
بالا