با تشكر از مهندس رامين به خاطر مقاله خوبشون ولي اين كد ظاهرا مشكل دارد و كدي كه كار ميكنه به صورت زير بايد داخل Master Page كپي بشه داخل فروم برنامه نويسان پيدا كردم دوستان استفاده كنيد .
کد HTML:
<script type="text/javascript"> // متغير هاي مورد نياز var Day; var Month; var Year; var pday; var pmonth; var pyear; // دريافت تمام تگ هاي تي دي در صفحه var tags = document.getElementsByTagName('TD'); for (var i = 0; i < tags.length; i++) { // دريافت مقدار کلاس تگ var TdClassName = tags[i].className; // چک کردن مقدار if (TdClassName.indexOf('ms-vb2') != -1) { // ذخيره مقدار درون تگ dateValue = tags[i].innerText; var d = new Date(dateValue == "" ? "N" : dateValue); // چک کردن اينکه آيا مقدار درون تگ از نوع تاريخ مي باشد يا خير if(!isNaN(d)) { Year = d.getFullYear(); Month = d.getMonth() + 1; Day = d.getDate(); // تبديل تاريخ ميلادي به شمسي var j = gregorian_to_jd(Year, Month, Day); perscal = jd_to_persian(j); pyear = perscal[0]; pmonth = perscal[1]; pday = perscal[2]; if (Number(pmonth) < 10) pmonth = "0" + pmonth; if (Number(pday) < 10) { pday = "0" + pday; } // ذخيره مقدار تاريخ شمسي var shamsiDate = pyear + "/" + pmonth + "/" + pday; // جايگذاري مقدار تاريخ ميلادي با شمسي tags[i].innerText = shamsiDate; } } } // توابع تبديل تاريخ function mod(a, b) { return a - (b * Math.floor(a / b)); } function leap_gregorian(year) { return ((year % 4) == 0) && (!(((year % 100) == 0) && ((year % 400) != 0))); } function gregorian_to_jd(year, month, day) { var GREGORIAN_EPOCH = 1721425.5; return (GREGORIAN_EPOCH - 1) + (365 * (year - 1)) + Math.floor((year - 1) / 4) + (-Math.floor((year - 1) / 100)) + Math.floor((year - 1) / 400) + Math.floor((((367 * month) - 362) / 12) + ((month <= 2) ? 0 : (leap_gregorian(year) ? -1 : -2)) + day); } function persian_to_jd(year, month, day) { var PERSIAN_EPOCH = 1948320.5; var epbase, epyear; epbase = year - ((year >= 0) ? 474 : 473); epyear = 474 + mod(epbase, 2820); return day + ((month <= 7) ? ((month - 1) * 31) : (((month - 1) * 30) + 6) ) + Math.floor(((epyear * 682) - 110) / 2816) + (epyear - 1) * 365 + Math.floor(epbase / 2820) * 1029983 + (PERSIAN_EPOCH - 1); } function jd_to_persian(jd) { var year, month, day, depoch, cycle, cyear, ycycle, aux1, aux2, yday; jd = Math.floor(jd) + 0.5; depoch = jd - persian_to_jd(475, 1, 1); cycle = Math.floor(depoch / 1029983); cyear = mod(depoch, 1029983); if (cyear == 1029982) { ycycle = 2820; } else { aux1 = Math.floor(cyear / 366); aux2 = mod(cyear, 366); ycycle = Math.floor(((2134 * aux1) + (2816 * aux2) + 2815) / 1028522) + aux1 + 1; } year = ycycle + (2820 * cycle) + 474; if (year <= 0) { year--; } yday = (jd - persian_to_jd(year, 1, 1)) + 1; month = (yday <= 186) ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30); day = (jd - persian_to_jd(year, month, 1)) + 1; return new Array(year, month, day); }</script>