پنج‌شنبه ۹ فروردین ۱۴۰۳ |  عضویت / ورود

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


يکي از کاربران (arkco عزيز) در انجمن‌ها سؤالي در مورد ساخت کدي براي نمايش اوقات شرعي در سايت پرسيده بودند و من توضيحي ارائه کردم که فکر مي‌کنم براي ديگران هم مفيد باشد. بنابراين، متن سؤال و متن جواب را اينجا مي‌آورم:

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

متن جواب:

سلام؛
arkco, جان، من روشي که در ساوه‌سرا به کار بردم رو توضيح مي‌دم، اما روش‌هاي ساده‌تر و کارآمدتري هم هست که درباره‌ش صحبت مي‌کنم.

راحت‌ترين کار و البته زمان‌برترين راه، راهي هست که من در ساوه‌سرا انجام دادم.
من چي کار کردم؟
1- رفتم سايت Owghat.com که فکر مي‌کنم الان در دسترس نباشه.
به هر حال، اوقات شرعي هر روز سال رو به دست آوردم. همونطور که مي‌دونيد، اين ساعات براي ما که تقويم شمسي داريم، ثابت هستند. يعني اگر الان ساعت 8 خورشيد غروب مي‌کنه، سال ديگه همين روز، خورشيد در همين ساعت 8 غروب مي‌کنه.
پس اگر شما کل اوقات روزهاي سال رو به دست بياريد، کار تمومه.
در سايت owghat.com کافي بود شهرتون رو بگيد و اوقات هر روز رو بگيريد.

2- حالا بايد اوقات هر روز رو به عکس تبديل کنيد. يعني 365 عکس داشته باشيد که داخل يک پوشه بريزيدشون.
فقط مي‌مونه نام عکس‌ها.
مثلا اين عکس رو ببينيد:
http://savehsara.aftab.cc/modules/Owghat/owghat/6-5.gif
به نام عکس دقت کنيد و به تاريخ امروز.
امروز 5 شهريور(6) 1387 هست و نام عکس 5-6 که اوقات شرعي امروز مربوط به ساوه رو نشون مي‌ده.
خوب، فکر مي‌کنم متوجه شديد.

3- فقط کافيه که بتونيد با استفاده از يک زبان مثل PHP کدي بنويسيد که شماره ماه شمسي رو به دست بياره و درج کنه، بعد يک خط تيره بذاره و بعد، شماره روز رو درج کنه، با اين کار مي‌تونيد اسم فايل و در نتيجه اوقات شرعي اون روز رو به دست بياريد Wink

همين!

حالا اون عکس رو با اطلاعاتي که خواستيد، مثل اين صفحه در يک صفحه سفيد چاپ مي‌کنيد و با استفاده از يک iframe در وبلاگ کاربر نمايش مي‌ديد.
مثلاً اگر کد زير رو داخل وبلاگتون قرار بديد، اوقات شرعي ساوه نمايش داده خواهد شد:
کد:
<iframe src="http://savehsara.aftab.cc/modules/Owghat/" frameborder="0" width="100%" scrolling="no" height="170" /></iframe>


در مورد کد PHP هم يه توضيح بدم. من با استفاده از تابعي jdate که توسط دوستان خوب ايراني نوشته شده، به تاريخ شمسي دسترسي دارم.
متأسفانه سايتي که فايل jdf.php رو منتشر مي‌کرد، الان ديگه فعاليت نمي‌کنه، اما مهم نيست، من آپلود کردم، مي‌تونيد دانلود کنيد: jdf.php
اگر اين فايل رو include کنيد، مثل تابع date در پي.اچ.پي، به تاريخ شمسي (جلالي) دسترسي داريد، فقط از اين به بعد مثلاً به جاي
کد:
echo  date ('F');

اين کد، نام ماه رو به ميلادي درج مي‌کنه.
بنويسيد:
کد:
echo  jdate ('F');

اين کد، نام ماه رو به شمسي تايپ مي‌کنه.
مي‌تونيد با توجه به اطلاعات تابع date در سايت php.net از jdate استفاده کنيد.

حالا با چهار خط کد مي‌شه عکس اوقات شرعي امروز رو پرينت گرفت:
کد:

require_once ("jdf.php");
$month_num =  jdate ('n');
$day_num =  jdate ('j');
echo "<img src="http://savehsara.aftab.cc/modules/Owghat/owghat/$month_num-$day_num.gif" />";

توضيح در مورد کد بالا:
ابتدا فايل jdf رو ايمپورت کرديم.
بعد، شماره ماه شمسي رو ريختيم داخل متغير month_num
بعد، شماره روز شمسي رو ريختيم داخل day_num
بعد، گفتيم عکسي که در مسير http://savehsara.aftab.cc/modules/Owghat/owghat هست و نامش مساوي است با (gif.شماره روز-شماره ماه) پرينت بگير.
حالا اوقات شرعي امروز نمايش داده خواهد شد Wink

من اين کد رو زماني که هيچي از زبان برنامه‌نويسي نمي‌دونستم نوشتم بنابراين، الگوريتم بهينه نيست.Embarassed
تهيه عکس‌ها ممکنه کمي زمان‌بر باشه.
از طرفي اگر ساعت‌ها جلو و عقب کشيده بشه، شما نمي‌تونيد زمان‌ها رو تنظيم کنيد.
همونطور که مي‌دونيد، سايت owghat.com هم طبق يک الگوريتم اين زمان‌ها رو به دست مي‌ياره.
پس اگر شما اون الگوريتم رو به دست بياريد، مي‌تونيد سيستمتون رو خيلي پيشرفته‌تر کنيد.
مثلاً طوري کدنويسي کنيد که همه کاربران ايراني از سيستم شما استفاده کنند! فقط کافيه نام شهرشون رو بدن و کدي دريافت کنند که با قرار دادن اون در وبلاگشون اوقات شرعي شهرشون در وبلاگشون نمايش داده بشه. چون شما ديگه الگوريتم داريد نه چند تا عکس مخصوص يک شهر!
مشکل جلو و عقب بودم ساعت‌ها هم حل مي‌شه!
فقط کافيه چک کنيد که اگر شماره ما کمتر يا مساوي 6 (يعني کمتر از 7) بود، ساعات رو به علاوه‌ي 1 کنه و نمايش بده.
اما الان من مجبور شدم در الگوريتم خودم، چک کنم که اگر شماره ماه کمتر از 6 بود، زير عکس بنويسه "به ساعت قديم" Embarassed
کد:
if ($month_num<7)
echo '<span style="color:#999999; font-size:8pt; font-family:Tahoma;">به ساعت قديم</span>';


اميدوارم تونسته باشم توضيح کاملي ارائه کنم.



[ارسال شده در مورخه : سه شنبه، 5 شهریور، 1387 توسط Hamid]
[ #برنامه‌ نويسي]



بازدیدها از این مطلب: 19072 بار   امتیاز متوسط :   تعداد آراء: 3   امتیاز دهید:

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 11 با 5 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

[بدون موضوع]                توسط arkco در مورخه : سه شنبه، 5 شهریور، 1387(لینک نظر)
از شما بسیار ممنونم .


[ ارسال جوابیه ]


ehsan (امتیاز : 0)(لینک نظر)
توسط ehsan در مورخه : جمعه، 1 خرداد، 1388
باسلام

سايت جالبي داريد ومطلب را جالب توضيح دادين من يك كد پي اچ پي ميخواستم كه كار زير برام انجام بده ميشه براي من بذاريد

من يك كدي ميخوام براي تو وب، كه با هربار رفرش شدن صفحه از عدديك تا 100 بصورت متوالي نمايش بده بدون اينكه نياز به ديتابيس داشته باشه بعنوان مثال:

با اولين بار بازشدن صفحه ،در يك ايفريم متن شماره 1 نمايش بده كاربر بعدي كه صفحه را مي بينه متن شماره 2 بياد وبه همين ترتيب كارر بعدي كه مياد حتما متن شماره3 بياد... تا متن شماره 100 كه نمايش داد با رفرش بعدي دوباره متن شماره يك بياد ويك حالت چرخش متن داشته باشه ....تو اين كدبه ترتيب نمايش دادن برام مهمه. جواب را تو همين صفحه سر ميزنم..ممنونم


[ ارسال جوابیه ]


مشکل در ساخت کد (امتیاز : 0)(لینک نظر)
توسط مشکل در ساخت کد در مورخه : یکشنبه، 24 آبان، 1388
سلام دوست گرامی



راستش من هر کاری کردم نتونستم این کدها رو بسازم و با پی اچ پی نیوک هشت و دو سازگار کنم ولی خیلی خوش حال می شوم اگر شما راهنمایی کنید و بگویید که دقیقا این کدها رو چه کار باید بکنیم؟

ممنون می شم اگه راهنمایی بکنید.

منتظر پاسخ شما هستم.


[ ارسال جوابیه ]


مشکل در کدها (امتیاز : 0)(لینک نظر)
توسط مشکل در کدها در مورخه : یکشنبه، 24 آبان، 1388
این چهار خط کدی که گفتید رو کجا باید بزرایم؟


[ ارسال جوابیه ]


نرم افزار جدید (امتیاز : 0)(لینک نظر)
توسط نرم افزار جدید در مورخه : پنجشنبه، 26 اسفند، 1389
بسم الله الرّحمن الرّحيم



معرّفی یک نرم افزار پی اچ پی مفید و کاربردی برای تبدیل تاریخ و زمان



تاريخ هجري شمسي به عنوان يکي از دقيق ترين تاريخ ها ، براي استفاده در سايت هاي فارسي بسيار مناسب است. امّا متاسّفانه با توجّه به ميلادي بودن تاريخ سرور سايت ها ، دسترسي به تاريخ هجري شمسي با مشکلاتي همراه است. يکي از اين مشکلات ، عدم دسترسي به يک نرم افزار رايگان مبدّل تاريخ به هجري شمسي است که از دقّت بالايي نيز برخوردار باشد.

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

پس از گذشت سال ها از ساخت نرم افزار قديمي تبديل تاريخ ، در راستاي پيشرفت کشور و توسعه ي فناوري اطّلاعات ، نياز به انتشار يک نرم افزار مشابه با دقّت و امکانات بيشتر ، به شدّت احساس مي شد. تا اين که سايت http://jdf.scr.ir در روز 22 بهمن 1389 ، اقدام به انتشار يک نرم افزار جديد ، مشابه با نرم افزار قديمي نمود و اوّلين نسخه ي آن را در امتداد نسخه ي قديمي ، نسخه ي 2.00 قرار داد.

اين نرم افزار جديد ، به دليل همنام بودن نام فايل و توابع آن با نرم افزار قديمي ، اين قابليت را دارد که به راحتي جايگزين فايل قديمي در سايت ها شود و مشکلي در سايت ايجاد نکند.

همچنين امکانات بسيار زيادي به نرم افزار جديد اضافه شد ، مثلاً قابليت محاسبه و نمايش : نام روز و ماه و سال به حروف _ نام باستاني برج ها _ نام حيواني سال ها _ تعداد روز و درصد گذشته و باقيمانده از سال _ نام و شماره ي فصل _ و امکانات بسيار زياد ديگري که مناسب با تاريخ هجري شمسي و زبان شيرين فارسي می باشد.

در اين نرم افزار ، پارامترهاي جديد زيادي اضافه شد تا بتوان عملکرد توابع را به صورت دقیق کنترل کرد و خروجي دلخواه را دريافت نمود. مثلاً قابليت تعيين زبان اعداد ، منطقه ي زماني و حتّي نوع خروجي بعضي توابع که به صورت آرايه باشد يا يک متن دلخواه.

توابع نيز به صورت کامل ، بازنويسي و اصلاح شدند. حجم نرم افزار جديد تا حدّ زيادي کاهش يافت و در مقابل ، سرعت و دقّت آن چندين برابر شد.

اين نرم افزار با داشتن ويژگي هايي همچون متن باز و رايگان بودن ، راه جديدي را براي استفاده از تاريخ هجري شمسي در فضاي مجازي باز کرد. افتخار مي کنيم که اکنون شاهد استفاده از تاريخ بسيار دقيق هجري شمسي در وب سايت ها هستيم و ديگر اجباري براي استفاده از تاريخ ميلادي وجود ندارد. انشاءالله در آينده ي نزديک بتوانيم با ابداع سيستم عامل ها ، زبان هاي برنامه نويسي و نرم افزار هاي بومي به دست خودمان ، کاملاً خودکفا و بي نياز از فناوري هاي غير بومي شويم. آن زمان نزديک است ، آنقدر نزديک که حتّي نمي توانيد تصوّرش را بکنيد.

نرم افزار جديد را هم اکنون مي توان از طريق سايت رسمي اين نرم افزار به نشاني http://jdf.scr.ir دريافت نمود. براي استفاده کنندگان از اين نرم افزار ، يک مجموعه ي کامل آموزشي ، ايجاد شده و در سايت http://jdf.scr.ir موجود است. همچنين اين سايت ، اقدام به جمع آوري نظرات و پيشنهادات شما براي ارتقاي بيشتر نرم افزار نموده و شما مي توانيد با گزارش اشکالات نرم افزار ، در اصلاح نسخه ي بعدي آن ، کمک کنيد. در اين سايت ، از تمامي ايده هاي مفيد و کاربردي ، حمايت مي شود.

با عضويت در خبرنامه ي سايت http://jdf.scr.ir به محض انشار نسخه ي جديدتري از اين نرم افزار ، مطّلع خواهيد شد.

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



براي کسب اطّلاعات بيشتر ، مي توانيد به سايت http://jdf.scr.ir مراجعه فرماييد و از آخرين اخبار مربوطه ، مطّلع شويد.


[ ارسال جوابیه ]