# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها >  الگوریتم اوقات شرعی

## kimia1

سلام دوستان. اگه کسی الگوریتم اوقات شرعی را داره لطف کنه و کمک کنه. ممنون از کمکتون

----------


## Mega7000

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

----------


## javad_hosseiny

نه بحث تبدیل تاریخ ها نیست (که البته اگر نیاز به آن نیاز داشته باشید نمونه سورس کد (و الگوریتم) توسط آقای رضا توکلی نیا در بخش الگوریتم ها و بخش فاکس پرو ارائه شده که می تونید از آن استفاده کنید)
در رابطه با این موضوع نرم افزار (نرم افزار ابوثمامه)  و کتابی توسط مؤسسه تحقیقاتی لوا (شهر قم - صندوق پستی 37185-3631) تهیه شده که می تونید از آن استفاده کنید. 
این نرم افزار قابلیت محاسبه اوقات شرعی نقاط مختلف دنیا و پخش اذان و ... را دارد.
که در دفترچه راهنما آن نسبت به این موضوع (نحوه استخراج اوقات شرعی) کامل توضیح داده شده است.

----------


## kimia1

> نه بحث تبدیل تاریخ ها نیست (که البته اگر نیاز به آن نیاز داشته باشید نمونه سورس کد (و الگوریتم) توسط آقای رضا توکلی نیا در بخش الگوریتم ها و بخش فاکس پرو ارائه شده که می تونید از آن استفاده کنید)
> در رابطه با این موضوع نرم افزار (نرم افزار ابوثمامه)  و کتابی توسط مؤسسه تحقیقاتی لوا (شهر قم - صندوق پستی 37185-3631) تهیه شده که می تونید از آن استفاده کنید. 
> این نرم افزار قابلیت محاسبه اوقات شرعی نقاط مختلف دنیا و پخش اذان و ... را دارد.
> که در دفترچه راهنما آن نسبت به این موضوع (نحوه استخراج اوقات شرعی) کامل توضیح داده شده است.


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

----------


## javad_hosseiny

نخیر 



> اما تا اونجایی که من اطلاع دارم نرم افزار ابو ثمامه فقط برای یکسال جواب می داد.


 اینچنین نیست و برای تمام سالها می باشد (نرم افزار بر اساس تاریخ سیستم (میلادی) کار می کند وخود تبدیل قمری و ... ) را انجام می دهد
والبته برنامه قوی تر نیز به نام نجوم را نیز ارائه داده اند
کتاب مربوطه توسط خود انتشارات لوا نشر داده شده و از طریق خود مؤسسه لوا می تونید پیگیری و تهیه نمایید 
(بنده کتاب چاپ اول (تابستان 76) آن را دارم)
(که در این کتاب اوقات شرعی 104 شهر مهم ایران بوده و بر پایه سال 77 به عنوان شاخص و متوسط دوره های کبیسه درنظر گرفته شده (و در دوره سال 76 تا 85 معتبر است) و نهایتا برای سالهای دیگر با رنج اختلاف یک دقیقه می باشد)
و برای این منظور (اوقات شرعی) نیز فرمول محاسبه دقیق و ... می باشد که در کتاب ضمیمه مربوطه به طور کامل توضیح داده شده 
(البته چون توضیحاتش طولانی است متاسفانه امکان تایپ و قراردادنش در اینجا نیست)
ولی به عنوان نمونه به چند نکته اشاره شده در این کتاب بنده اشاره می کنم:

در اصطلاح نجومی فاصله زمانی بین ظهور اولین جزء از جرم خورشید در مشرق, تا پنهانی آخرین جزء ان در مغرب را روز گویند.
هر یک از دو پدیده طلوع و غروب خورشید در احکام شرعی منشا اثر می باشند.
از نظر نجوم, طول روز در هر نقطه از کره زمین بستگی به عرض جغرافیایی, میزان میل خورشید, شیب افق ناظر و مقدار انکسار نور خورشید در جو دارد.
در اولین روز تابستان هر چه از جنوب به سمت شمال پیش رویم به طول روز افزوده شده و بالعکس, در اول زمستان هرچه از جنوب به سمت شمال پیش رویم از طول روز کاسته می شود, میزان اختلاف در مقدار روز با تغییر زاویه میل زمین بین 23/5 - و 23/5+ درجه, همواره در تغییر است.
برای محاسبه طول هر روز, در هر نقطه از کره زمین , می توان از فرمول زیر استفاده کرد:
Cos(h) = -2 tan(q) . tan(p) که در آن h زاویه روز, q عرض جغرافیایی محل و p میزان میل زمین است.
و با استفاده از رابطه زیر, طول روز بر حسب ساعت محاسبه می شود:
15 / (برحسب درجه) h  = طول روز  با اضافه نمودن قطر خورشید و با در نظر گرفتن مقدار انکسار نور در جو, بین 7 تا بیش از 20 دقیقه به طول روز افزوده می شود.
و ......
(توضیحاتی در رابطه با ظهر, وقت ظهر , غروب و ........)
و ....
و برای محاسبه زمانی که خورشید به هر یک از فواصل نامبرده می رسد, از فرمول زیر استفاده می شود.
cos(h) = sin(a) / [cos(q) . cos(p)]  که در آن a زاویه خورشید تا افق, p زاویه میل زمین, q عرض جغرافیایی محل و h زاویه ساعتی طبق شرح فوق است.
و .... همچنین یک سری فرمول جهت اوقات شرعی برای پایان فضیلت نماز ها و ...
و ... همچنین فرمول مربوط به تعیین ساعت قبله و ....



ونهایتا بعد از تولید این برنامه (ابوثمامه) و بررسی های به عمل آمده توسط ایشان (آقای مهندس سمیعی) تحولی در ارائه ساعت و اوقات شرعی بوجود آمده که باعث تغییر ساعات مطرح شده در افق رسمی کشور گردیده
که البته تائید مراجع عظام و توضیحات ایشان نیز (به همراه دست نوشته) در انتهای کتاب می باشد.

----------


## Mohammad_Mnt

آقای خجسته این رو نوشته . کامپوننت TSunTime رو از www.delphiarea.com بگیر و ببین :)

----------


## kia1349

اینم کد با vb
https://barnamenevis.org/showthread.php?t=31083
صفحه دوم

----------


## جوان ناکام

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

----------


## جوان ناکام

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

----------


## morteza_kh

با سلام راستش من با دلفی هر کار میکنم این اوقات شرعی جور نمیشه کسی میتونه کمکم کنه ؟

----------


## mory2008

با سلام خدمت اساتید محترم
من کدی دارم که اوقات شرعی رو محاسبه می کنه ولی به زبان java نوشته شده شاید بتونید ازش استفاده کنید
function showdate() {
    a = new Date();
    d = a.getDay();
    day = a.getDate();
    joomlacmsmonth = a.getMonth() + 1;
    year = a.getYear();
    year = (year == 0) ? 2000 : year;
    (year < 1000) ? (year += 2000) : true;
    year -= ((joomlacmsmonth < 3) || ((joomlacmsmonth == 3) && (day < 21))) ? 622 : 621;
    switch (joomlacmsmonth) {
        case 1: (day < 21) ? (joomlacmsmonth = 10, day += 10) : (joomlacmsmonth = 11, day -= 20); break;
        case 2: (day < 20) ? (joomlacmsmonth = 11, day += 11) : (joomlacmsmonth = 12, day -= 19); break;
        case 3: (day < 21) ? (joomlacmsmonth = 12, day += 9) : (joomlacmsmonth = 1, day -= 20); break;
        case 4: (day < 21) ? (joomlacmsmonth = 1, day += 11) : (joomlacmsmonth = 2, day -= 20); break;
        case 5:
        case 6: (day < 22) ? (joomlacmsmonth -= 3, day += 10) : (joomlacmsmonth -= 2, day -= 21); break;
        case 7:
        case 8:
        case 9: (day < 23) ? (joomlacmsmonth -= 3, day += 9) : (joomlacmsmonth -= 2, day -= 22); break;
        case 10: (day < 23) ? (joomlacmsmonth = 7, day += 8) : (joomlacmsmonth = 8, day -= 22); break;
        case 11:
        case 12: (day < 22) ? (joomlacmsmonth -= 3, day += 9) : (joomlacmsmonth -= 2, day -= 21); break;
        default: break;
    }
    document.getElementById("azanday").value = day;
    document.getElementById("azanjoomlacmsmonth").valu  e = joomlacmsmonth;
}
function main() {
    showdate();
    var i = document.getElementById("cities").selectedIndex;
    if (i == 0)
        return
    var m = document.getElementById("azanjoomlacmsmonth").valu  e;
    var d = eval(document.getElementById("azanday").value);
    var lg = eval(document.getElementById("longitude").value);
    var lat = eval(document.getElementById("latitude").value);
    var ep = sun(m, d, 4, lg)
    var zr = ep[0];
    delta = ep[1];
    ha = loc2hor(108.0, delta, lat)
    var t1 = Round(zr - ha, 24)
    ep = sun(m, d, t1, lg)
    zr = ep[0];
    delta = ep[1];
    ha = loc2hor(108.0, delta, lat)
    var t1 = Round(zr - ha + 0.025, 24)

    document.getElementById("azan_t1").innerHTML = hms(t1);
    document.getElementById("azan_ht1").value = hhh(t1);
    document.getElementById("azan_mt1").value = mmm(t1);
    ep = sun(m, d, 6, lg)
    zr = ep[0];
    delta = ep[1];
    ha = loc2hor(90.833, delta, lat)
    var t2 = Round(zr - ha, 24)
    ep = sun(m, d, t2, lg)
    zr = ep[0];
    delta = ep[1];
    ha = loc2hor(90.833, delta, lat)
    t2 = Round(zr - ha + 0.008, 24)

    document.getElementById("azan_t2").innerHTML = hms(t2);
    document.getElementById("azan_ht2").value = hhh(t2);
    document.getElementById("azan_mt2").value = mmm(t2);
    ep = sun(m, d, 12, lg)
    ep = sun(m, d, ep[0], lg)
    zr = ep[0] + 0.01;

    document.getElementById("azan_t3").innerHTML = hms(zr);
    document.getElementById("azan_ht3").value = hhh(zr);
    document.getElementById("azan_mt3").value = mmm(zr);
    ep = sun(m, d, 18, lg)
    zr = ep[0];
    delta = ep[1];
    ha = loc2hor(90.833, delta, lat)
    var t3 = Round(zr + ha, 24)
    ep = sun(m, d, t3, lg)
    zr = ep[0];
    delta = ep[1];
    ha = loc2hor(90.833, delta, lat)
    t3 = Round(zr + ha - 0.014, 24)
    document.getElementById("azan_t4").innerHTML = hms(t3);
    document.getElementById("azan_ht4").value = hhh(t3);
    document.getElementById("azan_mt4").value = mmm(t3);
    ep = sun(m, d, 18.5, lg)
    zr = ep[0];
    delta = ep[1];
    ha = loc2hor(94.3, delta, lat)
    var t4 = Round(zr + ha, 24)
    ep = sun(m, d, t4, lg)
    zr = ep[0];
    delta = ep[1];
    ha = loc2hor(94.3, delta, lat)
    t4 = Round(zr + ha + 0.013, 24)
    document.getElementById("azan_t5").innerHTML = hms(t4);
    document.getElementById("azan_ht5").value = hhh(t4);
    document.getElementById("azan_mt5").value = mmm(t4);
    setTimeout("main()", 60000);
    shownow();
}
function sun(m, d, h, lg) {
    if (m < 7)
        d = 31 * (m - 1) + d + h / 24;
    else
        d = 6 + 30 * (m - 1) + d + h / 24;
    var M = 74.2023 + 0.98560026 * d;
    var L = -2.75043 + 0.98564735 * d;
    var lst = 8.3162159 + 0.065709824 * Math.floor(d) + 1.00273791 * 24 * (d % 1) + lg / 15;
    var e = 0.0167065;
    var omega = 4.85131 - 0.052954 * d;
    var ep = 23.4384717 + 0.00256 * cosd(omega);
    var ed = 180.0 / Math.PI * e;
    var u = M;
    for (var i = 1; i < 5; i++)
        u = u - (u - ed * sind(u) - M) / (1 - e * cosd(u));
    var v = 2 * atand(tand(u / 2) * Math.sqrt((1 + e) / (1 - e)));
    var theta = L + v - M - 0.00569 - 0.00479 * sind(omega);
    var delta = asind(sind(ep) * sind(theta));
    var alpha = 180.0 / Math.PI * Math.atan2(cosd(ep) * sind(theta), cosd(theta));
    if (alpha >= 360)
        alpha -= 360;
    var ha = lst - alpha / 15;
    var zr = Round(h - ha, 24);
    return ([zr, delta])
}
function init() {
    lgs = [0, 49.70, 48.30, 45.07, 51.64, 48.68, 46.42, 57.33, 56.29, 50.84, 59.21, 46.28, 51.41, 48.34, 49.59, 60.86, 48.50, 53.06, 53.39, 47.00, 50.86, 52.52, 50.00, 50.88, 57.06, 47.09, 54.44, 59.58, 48.52, 51.59, 54.35];
    lats = [0, 34.09, 38.25, 37.55, 32.68, 31.32, 33.64, 37.47, 27.19, 28.97, 32.86, 38.08, 35.70, 33.46, 37.28, 29.50, 36.68, 36.57, 35.58, 35.31, 32.33, 29.62, 36.28, 34.64, 30.29, 34.34, 36.84, 36.31, 34.80, 30.67, 31.89];
}
function coord() {
    var c = document.getElementById("cities");
    var i = c.selectedIndex;
    if (i == 0) {
        document.getElementById("longitude").value = "";
        document.getElementById("latitude").value = "";
    }
    else {
        document.getElementById("longitude").value = lgs[i].toString()
        document.getElementById("latitude").value = lats[i].toString()
    }
}
function sind(x) { return (Math.sin(Math.PI / 180.0 * x)); }
function cosd(x) { return (Math.cos(Math.PI / 180.0 * x)); }
function tand(x) { return (Math.tan(Math.PI / 180.0 * x)); }
function atand(x) { return (Math.atan(x) * 180.0 / Math.PI); }
function asind(x) { return (Math.asin(x) * 180.0 / Math.PI); }
function acosd(x) { return (Math.acos(x) * 180.0 / Math.PI); }
function sqrt(x) { return (Math.sqrt(x)); }
function frac(x) { return (x % 1); }
function floor(x) { return (Math.floor(x)); }
function ceil(x) { return (Math.ceil(x)); }
function loc2hor(z, d, p) {
    return (acosd((cosd(z) - sind(d) * sind(p)) / cosd(d) / cosd(p)) / 15);
}
function Round(x, a) {
    var tmp = x % a;
    if (tmp < 0)
        tmp += a;
    return (tmp)
}
function hms(x) {
    x = Math.floor(3600 * x);
    h = Math.floor(x / 3600);
    mp = x - 3600 * h;
    m = Math.floor(mp / 60);
    s = Math.floor(mp - 60 * m);
    return (((h < 10) ? "0" : "") + h.toString() + ":" + ((m < 10) ? "0" : "") + m.toString() + ":" + ((s < 10) ? "0" : "") + s.toString())
}

function hhh(x) {
    x = Math.floor(3600 * x);
    h = Math.floor(x / 3600);
    mp = x - 3600 * h;
    m = Math.floor(mp / 60);
    s = Math.floor(mp - 60 * m);
    return (((h < 10) ? "0" : "") + h.toString())
}

function mmm(x) {
    x = Math.floor(3600 * x);
    h = Math.floor(x / 3600);
    mp = x - 3600 * h;
    m = Math.floor(mp / 60);
    s = Math.floor(mp - 60 * m);
    return (((m < 10) ? "0" : "") + m.toString())
}

function offshownow() {
    document.getElementById("azan_p1").src = "../Images/Resources/s-flash.gif"
    document.getElementById("azan_p2").src = "../Images/Resources/s-flash.gif"
    document.getElementById("azan_p3").src = "../Images/Resources/s-flash.gif"
    document.getElementById("azan_p4").src = "../Images/Resources/s-flash.gif"
    document.getElementById("azan_p5").src = "../Images/Resources/s-flash.gif"
}

function shownow() {

    today = new Date();
    azan_ttt = new Date();
    azan_ttt.setHours(document.getElementById("azan_ht  1").value);
    azan_ttt.setMinutes(document.getElementById("azan_  mt1").value);
    if (azan_ttt.getTime() > today.getTime()) {
        offshownow();
        document.getElementById("azan_p1").src = "../Images/Resources/flasher.gif"
        diff = azan_ttt.getTime() - today.getTime();
        diff = Math.floor(diff / (1000 * 60));
        hh = Math.floor(diff / (60));
        ss = diff - (hh * 60)
        document.getElementById("azanazan").innerHTML = "<font color=#F27900>" + hh + "</font><font color=#F27900 id=donokh>:</font><font color=#F27900>" + ss + "</font> مانده تا <font color=#F27900>اذان صبح</font>";
        donokh_show();

    }
    else {

        if (azan_ttt.getTime() == today.getTime()) {

            offshownow();
            document.getElementById("azan_p1").src = "../Images/Resources/flasher.gif"
            document.getElementById("azanazan").innerHTML = "<font color=#F27900 id=donokh></font><font color=#F27900>اذان صبح به افق " + document.getElementById("cities").value + "</font>";
            document.getElementById("pazanbox").innerHTML = "اذان صبح به افق " + document.getElementById("cities").value;
            if (document.getElementById('pzpzpz').style.display == "none") { pz(); }
        }

        else {
            azan_ttt = new Date();
            azan_ttt.setHours(document.getElementById("azan_ht  2").value);
            azan_ttt.setMinutes(document.getElementById("azan_  mt2").value);
            if (azan_ttt.getTime() > today.getTime()) {
                offshownow();
                document.getElementById("azan_p2").src = "../Images/Resources/flasher.gif"
                diff = azan_ttt.getTime() - today.getTime();
                diff = Math.floor(diff / (1000 * 60));
                hh = Math.floor(diff / (60));
                ss = diff - (hh * 60)
                document.getElementById("azanazan").innerHTML = "<font color=#F27900>" + hh + "</font><font color=#F27900 id=donokh>:</font><font color=#F27900>" + ss + "</font> مانده تا <font color=#F27900>طلوع خورشید</font>";
                donokh_show();

            }

            else {
                if (azan_ttt.getTime() == today.getTime()) {
                    offshownow();
                    document.getElementById("azan_p2").src = "../Images/Resources/flasher.gif"
                    document.getElementById("azanazan").innerHTML = "<font color=#F27900 id=donokh></font><font color=#F27900>طلوع خورشید</font>";



                }

                else {

                    azan_ttt = new Date();
                    azan_ttt.setHours(document.getElementById("azan_ht  3").value);
                    azan_ttt.setMinutes(document.getElementById("azan_  mt3").value);
                    if (azan_ttt.getTime() > today.getTime()) {
                        offshownow();
                        document.getElementById("azan_p3").src = "../Images/Resources/flasher.gif"
                        diff = azan_ttt.getTime() - today.getTime();
                        diff = Math.floor(diff / (1000 * 60));
                        hh = Math.floor(diff / (60));
                        ss = diff - (hh * 60)
                        document.getElementById("azanazan").innerHTML = "<font color=#F27900>" + hh + "</font><font color=#F27900 id=donokh>:</font><font color=#F27900>" + ss + "</font> مانده تا <font color=#F27900>اذان ظهر</font>";
                        donokh_show();
                    }

                    else {

                        if (azan_ttt.getTime() == today.getTime()) {
                            offshownow();
                            document.getElementById("azan_p3").src = "../Images/Resources/flasher.gif"
                            document.getElementById("azanazan").innerHTML = "<font color=#F27900 id=donokh></font><font color=#F27900>اذان ظهر به افق " + document.getElementById("cities").value + "</font>";

                            document.getElementById("pazanbox").innerHTML = "اذان ظهر به افق " + document.getElementById("cities").value;
                            if (document.getElementById('pzpzpz').style.display == "none") { pz(); }
                        }

                        else {

                            azan_ttt = new Date();
                            azan_ttt.setHours(document.getElementById("azan_ht  4").value);
                            azan_ttt.setMinutes(document.getElementById("azan_  mt4").value);
                            if (azan_ttt.getTime() > today.getTime()) {
                                offshownow();
                                document.getElementById("azan_p4").src = "../Images/Resources/flasher.gif"
                                diff = azan_ttt.getTime() - today.getTime();
                                diff = Math.floor(diff / (1000 * 60));
                                hh = Math.floor(diff / (60));
                                ss = diff - (hh * 60)
                                document.getElementById("azanazan").innerHTML = "<font color=#F27900>" + hh + "</font><font color=#F27900 id=donokh>:</font><font color=#F27900>" + ss + "</font> مانده تا <font color=#F27900>غروب خورشید</font>";
                                donokh_show();
                            }
                            else {
                                if (azan_ttt.getTime() == today.getTime()) {
                                    offshownow();
                                    document.getElementById("azan_p4").src = "../Images/Resources/flasher.gif"
                                    document.getElementById("azanazan").innerHTML = "<font color=#F27900 id=donokh></font><font color=#F27900>غروب خورشید</font>";
                                }
                                else {

                                    azan_ttt = new Date();
                                    azan_ttt.setHours(document.getElementById("azan_ht  5").value);
                                    azan_ttt.setMinutes(document.getElementById("azan_  mt5").value);
                                    if (azan_ttt.getTime() > today.getTime()) {
                                        offshownow();
                                        document.getElementById("azan_p5").src = "../Images/Resources/flasher.gif"
                                        diff = azan_ttt.getTime() - today.getTime();
                                        diff = Math.floor(diff / (1000 * 60));
                                        hh = Math.floor(diff / (60));
                                        ss = diff - (hh * 60)
                                        document.getElementById("azanazan").innerHTML = "<font color=#F27900>" + hh + "</font><font color=#F27900 id=donokh>:</font><font color=#F27900>" + ss + "</font> مانده تا <font color=#F27900>اذان مغرب</font>";
                                        donokh_show();
                                    }
                                    else {

                                        if (azan_ttt.getTime() == today.getTime()) {
                                            offshownow();
                                            document.getElementById("azan_p5").src = "../Images/Resources/flasher.gif"
                                            document.getElementById("azanazan").innerHTML = "<font color=#F27900 id=donokh></font><font color=#F27900>اذان مغرب به افق " + document.getElementById("cities").value + "</font>";

                                            document.getElementById("pazanbox").innerHTML = "اذان مغرب به افق " + document.getElementById("cities").value;
                                            if (document.getElementById('pzpzpz').style.display == "none") { pz(); }

                                        }
                                        else {

                                            azan_ttt = new Date();
                                            azan_ttt.setHours(23);
                                            azan_ttt.setMinutes(59);
                                            diff = azan_ttt.getTime() - today.getTime();
                                            diff = Math.floor(diff / (1000 * 60));
                                            hh = Math.floor(diff / (60));
                                            ss = diff - (hh * 60);


                                            offshownow();
                                            document.getElementById("azan_p1").src = "../Images/Resources/flasher.gif";
                                            hh += Math.floor(document.getElementById("azan_ht1").val  ue);
                                            ss += Math.floor(document.getElementById("azan_mt1").val  ue);
                                            document.getElementById("azanazan").innerHTML = "<font color=#F27900>" + hh + "</font><font color=#F27900 id=donokh>:</font><font color=#F27900>" + ss + "</font> مانده تا <font color=#F27900>اذان صبح</font>";
                                            donokh_show();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    } setTimeout("shownow()", 20000);
}

function donokh_show() {
    document.getElementById("donokh").color="#F27900"
    setTimeout("donokh_hide()",500);
}

function donokh_hide() {
    document.getElementById("donokh").color="#FFFFFF"
    setTimeout("donokh_show()",500);
}

document.write("<input type=hidden id=latitude  name=latitude><input id=azanday type=hidden name=azanday><input id=azanjoomlacmsmonth type=hidden name=azanjoomlacmsmonth><input  type=hidden id=longitude name=longitude ><input type=hidden id=azan_ht1 name=azan_ht1 ><input type=hidden id=azan_mt1 name=azan_mt1 ><input type=hidden id=azan_ht2 name=azan_ht2 ><input type=hidden id=azan_mt2 name=azan_mt2 ><input type=hidden id=azan_ht3 name=azan_ht3 ><input type=hidden id=azan_mt3 name=azan_mt3 ><input type=hidden id=azan_ht4 name=azan_ht4 ><input type=hidden id=azan_mt4 name=azan_mt4 ><input type=hidden id=azan_ht5 name=azan_ht5 ><input type=hidden id=azan_mt5 name=azan_mt5 >")
document.write("<table border=0 width=151 style='font-family: Tahoma; font-size: 8pt; text-shadow: 0 0 0.2em #808080, 0 0 0.2em #808080, 0 0 0.2em #808080;' dir=rtl height=30><tr>	<td align=center><span id=azanazan></span>&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>	</table>")
document.write("<table border=0 width=156 style='font-family: Tahoma; font-size: 8pt; text-shadow: 0 0 0.2em #808080, 0 0 0.2em #808080, 0 0 0.2em #808080;'><tr><td align=center id=azan_t1>&nbsp;</td><td dir=rtl width=58%>	<img border=0 src=../Images/Resources/s-flash.gif width=10 height=7 id=azan_p1> <span>اذان صبح</span></td></tr><tr><td align=center id=azan_t2>&nbsp;</td><td dir=rtl width=58%><img border=0 src=../Images/Resources/s-flash.gif width=10 height=7 id=azan_p2> <span>طلوع خورشید</span></td>	</tr><tr><td align=center id=azan_t3>&nbsp;</td><td dir=rtl width=58%><img border=0 src=../Images/Resources/s-flash.gif width=10 height=7 id=azan_p3> <span>اذان ظهر</span></td></tr><tr><td align=center id=azan_t4>&nbsp;</td><td dir=rtl width=58%><img border=0 src=../Images/Resources/s-flash.gif width=10 height=7 id=azan_p4>	 <span>غروب خورشید</span></td></tr><tr><td align=center id=azan_t5>&nbsp;</td><td dir=rtl width=58%><img border=0 src=../Images/Resources/s-flash.gif width=10 height=7 id=azan_p5> 	<span>اذان مغرب</span></td></tr></table>")
document.write("<table border=0 width=150 cellspacing=0 cellpadding=0 style='font-family: Tahoma; font-size: 8pt; text-shadow: 0 0 0.2em #808080, 0 0 0.2em #808080, 0 0 0.2em #808080;' dir='rtl' height=30><tr>	<td align=center><span>اوقات به افق : <select id=cities size=1 name=c dir=rtl style='font-family: Tahoma; font-size: 8pt; width: 69; height: 19' onchange='coord();main();'><option value=''>انتخاب شهر</option><option value='اراک'>اراک</option><option value='اردبیل'>اردبیل</option><option value='ارومیه'>ارومیه</option><option value='اصفهان'>اصفهان</option><option value='اهواز'>اهواز</option><option value='ایلام'>ایلام</option><option value='بجنورد'>بجنورد</option>	<option value='بندرعباس'>بندرعباس</option><option value='بوشهر'>بوشهر</option><option value='بیرجند'>بیرجند</option><option value='تبریز'>تبریز</option><option value='تهران'>تهران</option><option value='خرم آباد'>خرم آباد</option><option value='رشت'>رشت</option><option value='زاهدان'>زاهدان</option><option value='زنجان'>زنجان</option><option value='ساری'>ساری</option><option value='سمنان'>سمنان</option><option value='سنندج'>سنندج</option><option value='شهرکرد'>شهرکرد</option><option value='شیراز'>شیراز</option><option value='قزوین'>قزوین</option><option value='قم'>قم</option><option value='کرمان'>کرمان</option>	<option value='کرمانشاه'>کرمانشاه</option><option value='گرگان'>گرگان</option><option value='مشهد'>مشهد</option><option value='همدان'>همدان</option><option value='یاسوج'>یاسوج</option><option value='یزد'>یزد</option></select></span>&nbsp;&nbsp;&nbsp; </td></table>")

----------


## mohsen24000

> با سلام خدمت اساتید محترم
> من کدی دارم که اوقات شرعی رو محاسبه می کنه ولی به زبان java نوشته شده شاید بتونید ازش استفاده کنید


منظورتون Java Script هست دیگه! :چشمک: 
این کد در اکثر سایتهای ایرانی داره استفاده میشه و تقریبا همه گیر شده!

----------


## omid_3497

> منظورتون Java Script هست دیگه!
> این کد در اکثر سایتهای ایرانی داره استفاده میشه و تقریبا همه گیر شده!


سلام؛ آیا خطایی داره که میگید همه گیر شده ؟

----------


## EhsaN_ME

سلام شما میگی این برنامه را نوشتی مراحلش را توضیح بده ببینیم چکار کردی . منتظرت هستم eh_me_18@yahoo.com

----------


## rahnema1

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

----------


## bijan64

سلام
من کد جاوا رو به دلفی تبدیل کردم
ولی زمانها رو اشتباه میده
دوستانی که دلفی کارند کمک کنین لطفا :

----------


## bijan64

unit Unit2;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,math,
  FMX.Layouts, FMX.Memo;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  dry:array[1..12,1..31] of string;
  i,j:integer;
  ///////////////
   PI:Double;
   AzanSOb:string;
   Toloe:String;
   AzanZohr:String;
   Ghoroob:String;
   Maghreb:String;
   lgs: Double;
   lats:Double;
    type
     bs = record
     XX:Double;
     YY:Double;
     end;
implementation

{$R *.fmx}
 Function mod2(a:Double;b:Double):Double;
begin
    mod2 := a - (b * Int(a / b));
End ;

Function rRound(X :Double; a :Double):Double;
var
    tmp:Double;
begin
    tmp := mod2(X, a);
    If tmp < 0 Then tmp := tmp + a;
    rRound := tmp;
End;
 //////////////math/////////////////////
Function sind(X:Double):Double;
 begin
 sind := Sin(PI / 180 * X);
End;
Function cosd(X:Double):Double;
begin
    cosd := Cos(PI / 180 * X) ;
End;
Function tand(X:Double):Double;
begin
    tand := Tan(PI / 180 * X);
End ;
Function atand(X:Double):Double;
begin
    atand := ArcTan(X) * 180 / PI;
End ;
Function asind(X:Double):Double;
begin
 asind := ArcSin(X) * 180 / PI;
End ;
Function acosd(X:Double):Double;
begin
    acosd := ArcCos(X) * 180 / PI;
End ;
Function Floor(X:Double):Double;
begin
    Floor := Int(X);
End ;
Function ASin(X:Double):Double;
begin
   ASin := ArcTan(X / Sqr(-X * X + 1.01)) ;
End ;
Function ACos(X:Double):Double;
begin
   ACos := ArcTan(-X / Sqr(-X * X + 1.01)) + 2 * ArcTan(1);
End ;

Function loc2hor(z:Double;d:Double;p:Double):Double;
begin
   loc2hor := acosd((cosd(z) - sind(d) * sind(p)) / cosd(d) / cosd(p)) / 15 ;
End ;

Function sgn(n:real):Integer;
 Var
 tn:integer ;
 BEGIN
 if n=0 then tn := -1;
 if n>0  then tn := 1;
 if n =0 then tn := 0;
 sgn := tn;
 END;


Function ATan2(X:Double;Y :Double):Double;
begin

    If X = 0 Then begin
        If Y = 0 Then
            ATan2 := 1 / 0
        end;
         if Y > 0 Then begin
            ATan2 := PI / 2
        end Else begin
            ATan2 := -PI / 2
        End;
      If X > 0 Then  begin
        If Y = 0 Then begin
            ATan2 := 0
        end Else begin
            ATan2 := ArcTan(Y / X)
        End;
    end Else begin
        If Y = 0 Then begin
            ATan2 := PI
          end Else begin
            ATan2 := (PI - ArcTan(Abs(Y) / Abs(X))) * Sgn(Y)
        End;
    End;
End ;




 ////////////////////////////////

Function hms(X:Double):String;
var
   h : Double;
    mp : Double;
    m : Double;
    ss : Double ;
    s : String;
begin
    X := Floor(3600 * X) ;
    h := Floor(X / 3600);
    mp := X - 3600 * h  ;
    m := Floor(mp / 60) ;
    ss := Floor(mp - 60 * m) ;

    If h < 10 Then s := '0' Else s := '';
    s := s + FloatToStr(h) + ':';
    If m < 10 Then s := s + '0';
    s := s + FloatToStr(m) + ':';
    If ss < 10 Then s := s + '0';
    s := s + FloatToStr(ss);
    hms := s;
End;


Function sun(m:Double;d:Double; h:Double;lg:Double):bs;
var
   mm :Double;
   l : Double;
   lst : Double;
   e : Double;
   omega : Double;
   ep : Double;
    ed : Double;
    u : Double;
  v :Double;
  theta : Double;
  delta : Double;
  alpha : Double;
  ha : Double;
  zr : Double;
  i : integer;
begin

    If m < 7 Then begin
        d := 31 * (m - 1) + d + h / 24;
    end Else begin
        d := 6 + 30 * (m - 1) + d + h / 24 ;
    End;
    mm := 74.2023 + 0.98560026 * d ;
    l := -2.75043 + 0.98564735 * d ;
    lst := 8.3162159 + 0.065709824 * Floor(d) + 1.00273791 * 24 * mod2(d, 1) + lg / 15;
    e := 0.0167065 ;
    omega := 4.85131 - 0.052954 * d ;
    ep := 23.4384717 + 0.00256 * cosd(omega) ;
    ed := 180 / PI * e  ;
    u := mm  ;
    For i := 1 To 4 do begin
        u := u - (u - ed * sind(u) - mm) / (1 - e * cosd(u)) ;
    end;

    v := 2 * atand(tand(u / 2) * Sqr((1 + e) / (1 - e)));
    theta := l + v - mm - 0.00569 - 0.00479 * sind(omega);
    delta :=  asind(sind(ep) * sind(theta)) ;

    alpha := 180 / PI * ATan2(cosd(theta), cosd(ep) * sind(theta)) ;

    If alpha >= 360 Then alpha := alpha - 360 ;
    ha := lst - alpha / 15 ;
    zr := rRound(h - ha, 24) ;

    sun.XX := zr ;
    sun.YY := delta ;
end;

  procedure ProcessALL(m:Double;d:Double;lg:Double;lat:Double)  ;
  var
      ep:bs;
      zr:Double;
      delta: Double;
      ha:Double;
      t1: Double;
      t2: Double;
      t3: Double;
      t4: Double;
  begin
     m := m + 1;
    d := d + 1 ;
    ep := sun(m, d, 4, lg);
    zr := ep.XX;
    delta := ep.YY;
    ha := loc2hor(108, delta, lat);
    t1 := rRound(zr - ha, 24);
    ep := sun(m, d, t1, lg);
    zr := ep.XX;
    delta := ep.YY ;
    ha := loc2hor(108, delta, lat);
    t1 := rRound(zr - ha, 24);
    AzanSOb := hms(t1);
    //////////
    ///
    ep := sun(m, d, 6, lg);
    zr := ep.XX;
    delta := ep.YY;
    ha := loc2hor(90.833, delta, lat);
    t2 := rRound(zr - ha, 24);
    ep := sun(m, d, t2, lg);
    zr := ep.XX ;
    delta := ep.YY  ;
    ha := loc2hor(90.833, delta, lat);
    t2 := rRound(zr - ha, 24) ;
    Toloe := hms(t2);
    //////
     ep := sun(m, d, 12, lg);
    ep := sun(m, d, ep.XX, lg);
    zr := ep.XX ;
    AzanZohr := hms(zr);
    ep := sun(m, d, 18, lg);
    zr := ep.XX;
    delta := ep.YY;
    ha := loc2hor(90.833, delta, lat) ;
    t3 := rRound(zr + ha, 24);
    ep := sun(m, d, t3, lg);
    zr := ep.XX;
    delta := ep.YY;
    ha := loc2hor(90.833, delta, lat);
    t3 := rRound(zr + ha, 24);
    Ghoroob := hms(t3);
    ep := sun(m, d, 18.5, lg);
    zr := ep.XX;
    delta := ep.YY;
    ha := loc2hor(94.3, delta, lat);
    t4 := rRound(zr + ha, 24);
    ep := sun(m, d, t4, lg);
    zr := ep.XX ;
    delta := ep.YY ;
    ha := loc2hor(94.3, delta, lat);
    t4 := rRound(zr + ha, 24);
    Maghreb := hms(t4) ;
  end;


  function coord(citiIndex:integer;X: Double;Y:Double):string;
    begin
    If citiIndex = 0 Then begin
        X := 0;
        Y := 0;
    end Else begin
        X := lgs;
        Y := lats;
    End;
  end;



  Function MiladiToShamsi(date1:TDate): String;
const
count_days : array[1..12] of Byte = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var

Year, Month, Day: Word ;
i: Byte;
st,strtemp: String;
day_year: Integer;

begin

strtemp:=FormatDateTime('yyyy/mm/dd', date1);

Year:=strtoint(copy(strtemp,1,4));
Month:=strtoint(copy(strtemp,6,2));
Day:=strtoint(copy(strtemp,9,2));


day_year:= 0;
for i:= 1 to month - 1 do
day_year:= day_year + count_days [ i ] ;
day_year:= day_year + day;

if IsLeapYear(Year) and (month > 2) then
Inc(day_year);

if (day_year <= 79) then
begin
if ((Year - 1) mod 4 = 0) then
day_year:= day_year + 11
else
day_year:= day_year + 10;

Year:= Year - 622;

if (day_year mod 30 = 0) then
begin
Month:= (day_year div 30) + 9;
Day:= 30;
end
else
begin
Month:= (day_year div 30) + 10;
Day:= day_year mod 30;
end;
end
else
begin
year:= year - 621;

day_year:= day_year - 79;
if (day_year <= 186) then
begin
if (day_year mod 31 = 0) then
begin
Month:= (day_year div 31);
Day:= 31;
end
else
begin
Month:= (day_year div 31) + 1;
Day:= day_year mod 31;
end;
end
else
begin
day_year:= day_year - 186;
if (day_year mod 30 = 0) then
begin
Month:= (day_year div 30) + 6;
Day:= 30;
end
else
begin
Month:= (day_year div 30) + 7;
Day:= day_year mod 30;
end;
end;
end; // else .

st:= IntToStr(Year) + '/';
if (Month < 10) then
st:= st + '0';
st:= st + IntToStr(Month) + '/';
if (Day < 10) then
st:= st + '0';
st:= st + IntToStr(Day);

Result:= st;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
 ii:string;
 jj:string;
 kk:string;
 ll:string;
 mm:string;
begin
  ProcessALL(10,5,51.41,35.7);
  memo1.Lines.Add('اذان صبح'+AzanSOb) ;
  memo1.Lines.Add('طلوع'+Toloe) ;
  memo1.Lines.Add('اذان ظهر'+AzanZohr) ;
  memo1.Lines.Add('غروب'+Ghoroob) ;
  memo1.Lines.Add('اذان مغرب'+Maghreb) ;

end;

procedure TForm2.FormCreate(Sender: TObject);
begin
PI:=3.14159265358979 ;


dry[01,01]:='آغاز نوروز';
dry[01,02]:='عيد نوروز';
dry[01,02]:='هجوم مأموران ستم شاهي پهلوي به مدرسه فيضيه قم، 1342 هـ ش';
dry[01,02]:='آغاز عمليات فتح المبين، 1361 هـ ش';
dry[01,03]:='عيد نوروز';
dry[01,04]:='عيد نوروز';
dry[01,12]:='روز جمهوري اسلامي ايران';
dry[01,13]:='روز طبيعت';
dry[01,18]:='روز سلامتي (روز جهاني بهداشت)';
dry[01,19]:='شهادت آيت الله سيد محمد باقر صدر و خواهر ايشان بنت الهدي توسط حكومت بعث عراق در سال 1359 هـ‌.ش';
dry[01,20]:='روز ملي فناوري هسته اي';
dry[01,21]:='شهادت امير سپهبد علي صياد شيرازي، 1378 هـ ش';
dry[01,25]:='روز بزرگداشت عطار نيشابوري';
dry[01,29]:='روز ارتش جمهوري اسلامي و نيروي زميني';
dry[02,01]:='روز بزرگداشت سعدي';
dry[02,02]:='تأسيس سپاه پاسداران انقلاب اسلامي، 1358 هـ ش';
dry[02,02]:='سالروز اعلام انقلاب فرهنگي، 1359 هـ ش';
dry[02,02]:='روز زمين پاك';
dry[02,03]:='روز ملي كارآفريني';
dry[02,03]:='روز بزرگداشت شيخ بهايي';
dry[02,05]:='شكست حملة نظامي آمريكا به ايران در طبس، 1359 هـ‌.ش';
dry[02,09]:='روز شوراها';
dry[02,10]:='روز ملي خليج فارس';
dry[02,10]:='آغاز عمليات بيت المقدس، 1361 هـ‌.ش';
dry[02,12]:='شهادت استاد مرتضي مطهري، 1358 هـ ش - روز معلم';
dry[02,15]:='روز بزرگداشت شيخ صدوق';
dry[02,17]:='روز اسناد ملي';
dry[02,24]:='لغو امتياز تنباكو به فتواي آيت الله ميرزا حسن شيرازي، 1270 هـ ش';
dry[02,25]:='روز بزرگداشت فردوسي';
dry[02,27]:='روز ارتباطات و روابط عمومي';
dry[02,28]:='روز بزرگداشت حكيم عمر خيام';
dry[03,01]:='روز بهره‌وري و بهينه‌سازي مصرف';
dry[03,01]:='روز بزرگداشت ملاصدرا، صدرالمتألهين';
dry[03,03]:='فتح خرمشهر در عمليات بيت المقدس، 1361 هـ ش - روز مقاومت، ايثار و پيروزي';
dry[03,14]:='رحلت حضرت امام خميني -ره- رهبر كبير انقلاب و بنيان‌گذار جمهوري اسلامي ايران، 1368هـ ش';
dry[03,14]:='انتخاب حضرت آيت الله خامنه‌اي به رهبري، 1368 هـ ش';
dry[03,15]:='قيام خونين 15 خرداد، 1342 هـ ش';
dry[03,20]:='روز گل و گياه';
dry[03,26]:='شهادت سربازان دلير اسلام: بخارايي، اماني، صفار هرندي و نيك نژاد، 1344 هـ ش';
dry[03,27]:='روزجهاد كشاورزي (تشكيل جهادسازندگي به فرمان حضرت امام خميني -ره-)، 1358 هـ ش';
dry[03,29]:='درگذشت دكتر علي شريعتي، 1356 هـ ش';
dry[03,30]:='انفجار در حرم حضرت امام رضا عليه السلام به دست ايادي آمريكا، 1373 هـ ش';
dry[03,31]:='شهادت دكتر مصطفي چمران، 1360 هـ ش';
dry[04,01]:='روز تبليغ و اطلاع رساني ديني، سالروز صدور فرمان حضرت امام خميني -ره- مبني بر تأسيس سازمان تبليغات اسلامي، 1360 هـ ش';
dry[04,01]:='روز اصناف';
dry[04,07]:='شهادت مظلومانة آيت‌الله دكتر بهشتي و 72 تن از ياران امام خميني -ره- با انفجار بمب به دست منافقان در دفتر مركزي حزب جمهوري اسلامي، 1360 هـ ش - روز قوة قضاييه';
dry[04,08]:='روز مبارزه با سلاح‌هاي شيميايي و ميكروبي';
dry[04,10]:='روز صنعت و معدن';
dry[04,11]:='شهادت آيت الله صدوقي چهارمين شهيد محراب به دست منافقين، 1361 هـ ش';
dry[04,12]:='سقوط هواپيماي مسافربري جمهوري اسلامي ايران توسط ناوگان آمريكاي جنايت‌كار، 1367 هـ ش';
dry[04,14]:='روز قلم';
dry[04,16]:='روز ماليات';
dry[04,25]:='روز بهزيستي و تأمين اجتماعي';
dry[04,27]:='اعلام پذيرش قطع‌نامة 598 شوراي امنيت از سوي ايران، 1367 هـ ش';
dry[05,05]:='سالروز عمليات افتخارآفرين مرصاد، 1367 هـ ش';
dry[05,06]:='روز ترويج آموزش هاي فني و حرفه اي';
dry[05,08]:='روز بزرگداشت شيخ شهاب الدين سهروردي، شيخ اشراق';
dry[05,09]:='روز اهداي خون';
dry[05,14]:='صدور فرمان مشروطيت، 1285 هـ ش';
dry[05,16]:='تشكيل جهاد دانشگاهي، 1359 هـ ش';
dry[05,17]:='روز خبرنگار';
dry[05,26]:='آغاز بازگشت آزادگان به ميهن اسلامي، 1369 هـ ش';
dry[05,28]:='كودتاي آمريكا براي بازگرداندن شاه، 1332 هـ ش';
dry[05,30]:='روز بزرگداشت علامه مجلسي';
dry[06,01]:='روز پزشك - روز بزرگداشت ابوعلي سينا';
dry[06,02]:='آغاز هفته دولت';
dry[06,04]:='روز كارمند';
dry[06,05]:='روز داروسازي - روز بزرگداشت محمد بن زكرياي رازي';
dry[06,08]:='روز مبارزه با تروريسم، انفجار دفتر نخست وزيري به دست منافقان و شهادت مظلومانة شهيدان رجايي و باهنر - 1360 هـ ش';
dry[06,10]:='روز بانك‌داري اسلامي، سالروز تصويب قانون عمليات بانكي بدون ربا - 1362 هـ ش';
dry[06,11]:='روز صنعت چاپ';
dry[06,13]:='روز تعاون - روز بزرگداشت ابوريحان بيروني';
dry[06,14]:='شهادت آيت الله قدوسي و سرتيپ وحيد دستجردي، 1360 هـ ش';
dry[06,17]:='قيام 17 شهريور و كشتار جمعي از مردم به دست مأموران ستم‌شاهي پهلوي، 1357 هـ ش';
dry[06,19]:='وفات آيت الله سيد محمود طالقاني اولين امام جمعة تهران، 1358 هـ ش';
dry[06,20]:='شهادت دومين شهيد محراب آيت الله مدني به دست منافقين، 1360 هـ ش';
dry[06,21]:='روز سينما';
dry[06,27]:='روز شعر و ادب فارسي - روز بزرگداشت استاد سيد محمدحسين شهريار';
dry[06,30]:='روز گفت و گوي تمدن‌ها';
dry[06,31]:='آغاز جنگ تحميلي، 1359 هـ ش - آغاز هفتة دفاع مقدس';
dry[07,05]:='شكست حصر آبادان در عمليات ثامن الائمه عليه السلام، 1360 هـ ش';
dry[07,07]:='روز آتش نشاني و ايمني';
dry[07,07]:='شهادت سرداران اسلام: فلاحي، فكوري، نامجو، كلاهدوز و جهان‌آرا، 1360 هـ ش';
dry[07,08]:='روز بزرگداشت مولوي';
dry[07,09]:='روز همبستگي و همدردي با كودكان و نوجوانان فلسطيني';
dry[07,13]:='هجرت حضرت امام خميني -ره- از عراق به پاريس، 1357 هـ ش';
dry[07,13]:='روز نيروي انتظامي';
dry[07,14]:='روز دامپزشكي';
dry[07,20]:='روز بزرگداشت حافظ';
dry[07,20]:='روز اسكان معلولان و سالمندان';
dry[07,20]:='روز ملي كاهش اثرات بلاياي طبيعي';
dry[07,23]:='شهادت پنجمين شهيد محراب آيت الله اشرفي اصفهاني به دست منافقان، 1361 هـ ش';
dry[07,24]:='روز پيوند اوليا و مربيان';
dry[07,26]:='روز تربيت بدني و ورزش';
dry[07,29]:='روز صادرات';
dry[08,01]:='روز آمار و برنامه ريزي';
dry[08,04]:='اعتراض و افشاگري حضرت امام خميني -ره- عليه پذيرش كاپيتولاسيون، 1343 هـ ش';
dry[08,08]:='شهادت محمدحسين فهميده، بسيجي 13 ساله - روز نوجوان - روز بسيج دانش‌آموزي';
dry[08,10]:='شهادت آيت الله قاضي طباطبايي اولين شهيد محراب به دست منافقان، 1358 هـ ش';
dry[08,13]:='تسخير لانة جاسوسي آمريكا به دست دانشجويان پيرو خط امام، 1358 هـ ش - روز ملي مبارزه با استكبار جهاني - روز دانش آموز';
dry[08,18]:='روز ملي كيفيت';
dry[08,24]:='روز كتاب و كتاب‌خواني';
dry[08,24]:='روز بزرگداشت آيت الله علامه سيد محمدحسين طباطبايي، 1360 هـ ش';
dry[09,05]:='روز بسيج مستضعفين، تشكيل بسيج مستضعفين به فرمان حضرت امام خميني -ره-، 1358 هـ ش';
dry[09,07]:='روز نيروي دريايي';
dry[09,09]:='روز بزرگداشت شيخ مفيد';
dry[09,10]:='شهادت آيت الله سيد حسن مدرس، 1316 هـ ش و روز مجلس';
dry[09,12]:='تصويب قانون اساسي جمهوري اسلامي ايران، 1358 هـ ش';
dry[09,13]:='روز دانشجو';
dry[09,18]:='معرفي عراق به عنوان مسؤول و آغازگر جنگ از سوي سازمان ملل، 1370 هـ ش';
dry[09,19]:='تشكيل شوراي عالي انقلاب فرهنگي به فرمان حضرت امام خميني -ره-، 1363 هـ ش';
dry[09,20]:='شهادت آيت الله دستغيب سومين شهيد محراب به دست منافقان، 1360 هـ ش';
dry[09,25]:='روز پژوهش';
dry[09,26]:='روز حمل و نقل';
dry[09,27]:='شهادت آيت الله دكتر محمد مفتح، 1358 هـ ش - روز وحدت حوزه و دانشگاه';
dry[10,04]:='ميلاد حضرت عيسي مسيح عليه السلام';
dry[10,05]:='روز ملي ايمني در برابر زلزله';
dry[10,07]:='سالروز تشكيل نهضت سوادآموزي به فرمان حضرت امام خميني -ره-، 1358 هـ ش';
dry[10,07]:='شهادت آيت الله حسين غفاري به دست مأموران ستم‌شاهي پهلوي، 1353 هـ ش';
dry[10,19]:='قيام خونين مردم قم، 1356 هـ ش';
dry[10,20]:='شهادت ميرزا تقي خان اميركبير، 1230 هـ ش';
dry[10,22]:='تشكيل شوراي انقلاب به فرمان حضرت امام خميني -ره-، 1357 هـ ش10,26,فرار شاه معدوم، 1357 هـ ش';
dry[10,27]:='شهادت نواب صفوي، طهماسبي، برادران واحدي و ذوالقدر از فداييان اسلام، 1334 هـ ش';
dry[11,12]:='بازگشت حضرت امام خميني -ره- به ايران، 1357 هـ ش، آغاز دهة مبارك فجر انقلاب اسلامي ';
dry[11,19]:='روز نيروي هوايي';
dry[11,22]:='پيروزي انقلاب اسلامي ايران و سقوط نظام شاهنشاهي، 1357 هـ ش';
dry[11,29]:='قيام مردم تبريز به مناسبت چهلمين روز شهادت شهداي قم، 1356 هـ ش';
dry[12,05]:='روز بزرگداشت خواجه نصيرالدين طوسي - روز مهندسي';
dry[12,08]:='روز امور تربيتي و تربيت اسلامي';
dry[12,09]:='روز ملي حمايت از حقوق مصرف كنندگان';
dry[12,14]:='روز احسان و نيكوكاري';
dry[12,15]:='روز درختكاري';
dry[12,16]:='روز وقف';
dry[12,22]:='روز بزرگداشت شهدا، سالروز صدور فرمان حضرت امام خميني -ره- مبني بر تأسيس بنياد شهيد انقلاب اسلامي، 1358 هـ ش';
dry[12,25]:='بمباران شيميايي حلبچه توسط ارتش بعث عراق، 1366 هـ ش';
dry[12,29]:='روز ملي شدن صنعت نفت ايران، 1329 هـ ش';


   form2.Caption:=' امروز '+ MiladiToShamsi(now) + '  هجری شمسی ، مصادف با ' + DateToStr(now) + '  میلادی';
   i:=strtoint(copy(MiladiToShamsi(now),6,2));
   j:=strtoint(copy(MiladiToShamsi(now),9,2));
   Label1.Text:=dry[i,j];
end;

end.

----------


## mohammad.reza.sheikh

با سلام
الگوریتم اصلاح شده رو میتونید از این تاپیک دانلود کنید.

الگوریتم اصلاح شده

----------

