تقويم ماهيانه شمسي با جاوا

rezsat

Member
تقويم ماهيانه شمسي با جاوا-كمك لطفا-فوريه

سلام.من يه كد جاوا پيدا كردم كه تقويم ماهيانه شمسي هست.ولي يه مشكل داره اونم اينه كه تا سال 83 هست.از جاوا كاران محترم خواهشمندم يه نگاه بهش بندازن و ببينن اگه ميشه كه حتما ميشه اينو كليش كنن يا حداقل تا 10 سال بعدشو بسازن براش.
اينم كد:
--------------------------------------------------------------------------------
کد:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML dir=rtl>
<HEAD>
<TITLE>تقویم</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META http-equiv=Content-Style-Type content="text/css; charset=utf-8">
<META http-equiv=Content-Language content=fa>
<SCRIPT language=JavaScript>
<!--

function SymError()
{
return true;
}

window.onerror = SymError;

var SymRealWinOpen = window.open;

function SymWinOpen(url, name, attributes)
{
return (new Object());
}

window.open = SymWinOpen;

//-->
</SCRIPT>

<SCRIPT language=JavaScript type=text/javascript>


var grgSumOfDays=Array(Array(0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365),Array(0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366));
var hshSumOfDays=Array(Array(0, 31, 62, 93, 124, 155, 186, 216, 246, 276, 306, 336, 365), Array(0, 31, 62, 93, 124, 155, 186, 216, 246, 276, 306, 336, 366));

function ToShamsi(grgYear,grgMonth,grgDay,Format)
{
     var hshYear = grgYear-621;
     var hshMonth,hshDay;
     
     var grgLeap=grgIsLeap (grgYear);
     var hshLeap=hshIsLeap (hshYear-1);
     
     var hshElapsed;
     var grgElapsed = grgSumOfDays[(grgLeap ? 1:0)][grgMonth-1]+grgDay;

     var XmasToNorooz = (hshLeap && grgLeap) ? 80 : 79;

     if (grgElapsed <= XmasToNorooz)
     {
             hshElapsed = grgElapsed+286;
             hshYear--;
             if (hshLeap && !grgLeap)
                   hshElapsed++;
     }
     else
     {
             hshElapsed = grgElapsed - XmasToNorooz;
             hshLeap = hshIsLeap (hshYear);
     }

     for (var i=1; i <= 12 ; i++)
     {
             if (hshSumOfDays [(hshLeap ? 1:0)] >= hshElapsed)
             {
                  hshMonth = i;
                  hshDay = hshElapsed - hshSumOfDays [(hshLeap ? 1:0)][i-1];
                  break; 
             }
     }


     if (Format=="Long")
             return hshDayName (hshDayOfWeek(hshYear,hshMonth,hshDay)) + " " + hshDay + " " + calNames("hf", hshMonth-1) + " " + hshYear;
     else
             return hshYear + " /" + hshMonth + " /" + hshDay;
}


function ToGregorian (hshYear,hshMonth,hshDay)
{
     var grgYear = hshYear+621;
     var grgMonth,grgDay;

     var hshLeap=hshIsLeap (hshYear);
     var grgLeap=grgIsLeap (grgYear);

     var hshElapsed=hshSumOfDays [hshLeap ? 1:0][hshMonth-1]+hshDay;
     var grgElapsed;

     if (hshMonth > 10 || (hshMonth == 10 && hshElapsed > 286+(grgLeap ? 1:0)))
     {
             grgElapsed = hshElapsed - (286 + (grgLeap ? 1:0));
             grgLeap = grgIsLeap (++grgYear);
     }
     else
     {
             hshLeap = hshIsLeap (hshYear-1);
             grgElapsed = hshElapsed + 79 + (hshLeap ? 1:0) - (grgIsLeap(grgYear-1) ? 1:0);
     }

     for (var i=1; i <= 12; i++)
     {
             if (grgSumOfDays [grgLeap ? 1:0] >= grgElapsed)
             {
                  grgMonth = i;
                  grgDay = grgElapsed - grgSumOfDays [grgLeap ? 1:0][i-1];
                  break; 
             }
     }

     return grgYear+"-"+grgMonth+"-"+grgDay;
}

function grgIsLeap (Year)
{
     return ((Year%4) == 0 && ((Year%100) != 0 || (Year%400) == 0));
}

function hshIsLeap (Year)
{
     Year = (Year - 474) % 128;
     Year = ((Year >= 30) ? 0 : 29) + Year;
     Year = Year - Math.floor(Year/33) - 1;
     return ((Year % 4) == 0);
}


function hshDayOfWeek(hshYear, hshMonth, hshDay)
{
     var value;
     value = hshYear - 1376 + hshSumOfDays[0][hshMonth-1] + hshDay - 1;

     for (var i=1380; i<hshYear; i++)
             if (hshIsLeap(i)) value++;
     for (var i=hshYear; i<1380; i++)
             if (hshIsLeap(i)) value--;

     value=value%7;
     if (value<0) value=value+7;

     return (value);
}

function hshDayName(DayOfWeek)
{
     return calNames("df", DayOfWeek%7);
}

function calNames(calendarName, monthNo)
{
switch (calendarName)
{
   case "hf": return Array("فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند")[monthNo];
   case "ge": return Array(" January ", " February ", " March ", " April ", " May ", " June ", " July ", " August ", " September ", " October ", " November ", " December ")[monthNo];
   case "gf": return Array("ژانویه", "فوریه", "مارس", "آوریل", "مه", "ژوثن", "ژوییه", "اوت", "سپتامبر", "اكتبر", "نوامبر", "دسامبر")[monthNo];
   case "df": return Array("شنبه", "یک‌شنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنج‌شنبه", "جمعه")[monthNo];
   case "de": return Array("Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday")[monthNo];
   }
}

</SCRIPT>

<SCRIPT language=JavaScript type=text/javascript>

/*
Hijri Shamsi (Khayyami)/Gregorian sub-labels calendar
Version 1.1

charset=utf-8

simorgh.ws
*/


function UpdateCalendar(targetId, gregorianMonths, year, month)
{
     var newRow, newCell;
     var currentDay=1;
     var holidays=getHolidays(year, month);
     var lastDay=31;
     var dtToday=new Date();
     var strToday=dtToday.getFullYear()+"-"+(dtToday.getMonth()+1)+"- "+dtToday.getDate();

     if (month>6) lastDay--;
     if (month==12 && !hshIsLeap(year)) lastDay--;


     while (targetId.rows.length>0) targetId.deleteRow(0);


     newRow=targetId.insertRow(0);
     for (var i=0; i<hshDayOfWeek(year,month,1); i++) newRow.insertCell(-1).innerHTML=" ";
     for (var i=hshDayOfWeek(year,month,1); i<7; i++) {
             newCell=newRow.insertCell(-1); 
             newCell.className="normalDay"; 
             newCell.innerHTML="<p class=ShamsiDayNo>" + currentDay + "</p><p dir=ltr class=GregorianDayNo>" + ToGregorian(year,month,currentDay).split("-")[2];
             if (holidays.substr(currentDay-1,1)=="x") newCell.className="Holiday";
             if (ToGregorian(year, month, currentDay)==strToday) newCell.className="Today";
             currentDay++;
             }

     while (currentDay<=lastDay) {
             newRow=targetId.insertRow(-1); 
             for (var i=0; i<7; i++) {
                   newCell=newRow.insertCell(-1); 
                   newCell.innerHTML="<p class=ShamsiDayNo>" + currentDay + "</p><p dir=ltr class=GregorianDayNo>" + ToGregorian(year,month,currentDay).split("-")[2];
                   newCell.className="normalDay"; 
                   if (holidays.substr(currentDay-1,1)=="x") newCell.className="Holiday";
                   if (ToGregorian(year, month, currentDay)==strToday) newCell.className="Today";
                   currentDay++;
                   if (currentDay>lastDay) break;
                   }
             }
     for (var i=newRow.cells.length; i<7; i++) newRow.insertCell(-1).innerHTML=" ";

     if (gregorianMonths != null) {
             gregorianMonths.getElementsByTagName('p') [0].innerHTML=calNames("ge", ToGregorian (year,month,1).split("-")[1]-1)+" "+(ToGregorian (year,month,1).split("-")[0])+" - "+calNames("ge", ToGregorian (year,month,30).split("-")[1]-1)+" "+ToGregorian (year,month,30).split("-")[0];
             gregorianMonths.getElementsByTagName('p') [1].innerHTML=calNames("gf", ToGregorian (year,month,1).split("-")[1]-1)+" "+(ToGregorian (year,month,1).split("-")[0])+" - "+calNames("gf", ToGregorian (year,month,30).split("-")[1]-1)+" "+ToGregorian (year,month,30).split("-")[0];
             }
}

function FillSelectWithMonthNames(targetId)
{
     for (var i=0; i<12; i++) {
             var mitem = document.createElement("OPTION");
             mitem.value=i+1;
             mitem.text=calNames("hf", i);
             targetId.options.add(mitem); 
             }
}

[COLOR="Red"]function getHolidays(year, month)
{
switch (year) {
case 1380: return Array("xxxx56789x1xx4xxx890123x567890x", "123456x890123x567890x234567x901", "x2xx567890x23xx67x9x1234x678901", "x234567x901234x678901x345678x01", "1234x678901x345678x012345x78901", "xx345678x012345x789012x456789x1", "12345x78x012x456789x12x456x890", "123x56789xx234567x901234x67890", "1x345678x012345x789012x45x789x", "123456x890123x56789xx234567x90", "1234x678901x345678x01x345x7890", "12xx56789x1x3456x890123x5678x")[month-1>;
case 1381: return Array("xxxxx678x01xx45x789012x456789x1", "12345x789012x456789xx2x456x8901", "12x45678xx123xx6x890123x567890x", "123456x890123x567890x234567x901", "123x567890x234567x90x234x678901", "x234567x901234x678901x345678xx1", "1234x678901xx45678x012345x789x", "12x456789x123456x890123x567890", "x234x67x901234x678901x345678x0", "12345x78x012x456789x123456x890", "123x567890x234567x901xx4x67890", "xx345678x012345x78901xx45678x")[month-1>;
case 1382: return Array("xxxx567x901xx4x678901x345678x01", "12x4x67890xx345678x012345x78x01", "1x345678x0123xxx789012x456789x1", "12345x789012x456789x123456x8901", "12x456789xx23456x890123x567890x", "123456x890123x5678x0x234567x901", "1x3x567890x234567x9x1234x67890", "1x345678x012345x789012x4x6789x", "1234x6x890123x567890x234567xx0", "1234x678901x345678x012345x7890", "12x456789x12x456x890xx3x567890", "x234567x90xx34x678901x345678x")[month-1>;
case 1383: return Array("xxxx56x8901xxx567890x234567x901", "123x567890x234567x901234x678901", "x234567x90123xx678901x345678x01", "1234x678901x345678x012345x78901", "1x345678x012345x789012x456789x1", "12345x789012x456789x123456x8901", "12x456789x123456x890123x567890", "x234567x901234x678901x345678x0", "12345x789012x456789x123456x890", "123x567890x234567x901234x67890", "1x345678x012345x78901xx456789x", "123456x890123x567890x234567xx0")[month-1>;
}
}[/COLOR]
</SCRIPT>

<STYLE type=text/css>TH {
     FONT: bold 10pt Tahoma; WIDTH: 62px; COLOR: black; BORDER-BOTTOM: black 1px solid; TEXT-ALIGN: center
}
.Holiday {
     FILTER: alpha(opacity=65); COLOR: white; BACKGROUND-COLOR: #ff4455; TEXT-ALIGN: center
}
.Today {
     FILTER: alpha(opacity=65); COLOR: white; BACKGROUND-COLOR: #5577ff; TEXT-ALIGN: center
}
.normalDay {
     TEXT-ALIGN: center
}
.ShamsiDayNo {
     MARGIN-TOP: 10px; MARGIN-BOTTOM: -5px; FONT: bold 14pt Tahoma
}
.GregorianDayNo {
     MARGIN-TOP: 0px; MARGIN-BOTTOM: 5px; FONT: 8pt Tahoma
}
</STYLE>

<SCRIPT language=javascript>
function updCal()
{
UpdateCalendar(document.getElementById('tblCal'), document.getElementById('grgMonth'), parseInt(document.getElementById('calendar').year.value), parseInt(document.getElementById('calendar').month.value));
}
</SCRIPT>

<STYLE type=text/css>BODY {
     FONT-FAMILY: Tahoma; TEXT-ALIGN: justify
}
TABLE {
     FONT-FAMILY: Tahoma; TEXT-ALIGN: justify
}
A {
     COLOR: #4477dd
}
A:hover {
     COLOR: #ff6699
}
A.navtool {
     COLOR: white; TEXT-DECORATION: none
}
A.navtool:hover {
     COLOR: white; TEXT-DECORATION: none
}
.topnav {
     WIDTH: 107px; COLOR: white; BORDER-BOTTOM: white 1px solid
}
.error {
     FONT: bold 12pt Tahoma; COLOR: red
}
H1 {
     COLOR: #000000
}
H2 {
     COLOR: #000000
}
H3 {
     COLOR: #000000
}
H4 {
     COLOR: #000000
}
H2 {
     MARGIN-TOP: 10px; MARGIN-BOTTOM: 5px; FONT-FAMILY: Tahoma
}
A.tool {
     FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #000000; TEXT-DECORATION: none
}
A.tool:hover {
     FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #000000; TEXT-DECORATION: none
}
</STYLE>


<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY dir=rtl>
<CENTER>
<DIV style="MARGIN-TOP: 25px; WIDTH: 750px">
<TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
<TBODY>
<TR>
    <TD style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND: url(images/background.gif) #cccccc no-repeat right top; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; HEIGHT: 250px" vAlign=top width=700>
      <TABLE cellSpacing=10 cellPadding=0 width=680 border=0>
        <TBODY>
        <TR>
             <TD width=434 rowSpan=2>
               <TABLE cellSpacing=0 cellPadding=0 width=434 border=0>
                <THEAD> 
                <TR> 
                   <TH>شنبه</TH>
                   <TH>یک‌شنبه</TH>
                   <TH>دوشنبه</TH>
                   <TH>سه‌شنبه</TH>
                   <TH>چهارشنبه</TH>
                   <TH>پنج‌شنبه</TH>
                   <TH>جمعه</TH></TR></THEAD>
                <TBODY id=tblCal>
                </TBODY>
               </TABLE>
             </TD>
             <TD width=46> </TD>
             <TD vAlign=top width=160>
               <TABLE cellSpacing=4 cellPadding=0 width=160 border=0>
                <TBODY>
                <TR> 
                    <TD width=4><IMG id=apGoCal style="DISPLAY: none" height=7 src="C:\Documents and Settings\Sattari\Desktop\Internet\farsi date_files\arrow-w(1).gif" width=4></TD>
                    <TD width=154><b><font size="1">تبدیل تاریخ شمسی و میلادی</font></b></TD>
                </TR>
                <TR> 
                    <TD colSpan=2> </TD>
                </TR>
                <TR> 
                    <TD class=holiday> </TD>
                    <TD><A class=tool>تعطیل</A></TD>
                </TR>
                <TR> 
                    <TD class=today> </TD>
                    <TD><b><font size="2">امروز</font></b></TD>
                </TR>
                </TBODY>
              </TABLE>
               </TD>
        </TR>
        <TR>
             <TD vAlign=bottom align=middle colSpan=2>
               <FORM id=calendar name=calendar onsubmit="return false;">
               <P>
                  <SELECT style="WIDTH: 100px; font-family:Tahoma; font-size:8pt" onchange=updCal(); name=year>
                    <OPTION value=1380>1380
                    <OPTION value=1381>1381
                    <OPTION value=1382 selected>1382
                    <OPTION value=1383>1383
                      </OPTION>
                  </SELECT>
                  </P>
               <P>
                  <SELECT style="WIDTH: 100px; font-family:Tahoma; font-size:8pt" onchange=updCal(); name=month></SELECT>
               </P>
               </FORM>
               <DIV id=grgMonth>
               <P dir=ltr style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; FONT: 10pt georgia; PADDING-TOP: 0px"> </P>
               <P style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 10pt; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"> </P></DIV></TD></TR>&l t;/TBODY></TABLE>
    
    <SCRIPT language=javascript>
          FillSe lectWithMonthNames(document.getElementById("calendar").month );
         var today=new Date(); 
                document.getElementById("calendar").month.value=Number(ToSha msi(today.getFullYear(), today.getMonth()+1, today.getDate(),'short').split('/')[1]);
          updCal ();
   </SCRIPT>
   
    </TD>
</TBODY>
</TABLE>
</DIV>
</CENTER>

<SCRIPT language=JavaScript>
     <!--
     var SymRealOnLoad;
     var SymRealOnUnload;
     
     function SymOnUnload()
     {
       window.open = SymWinOpen;
       if(SymRealOnUnload != null)
             SymRealOnUnload();
     }
     
     function SymOnLoad()
     {
       if(SymRealOnLoad != null)
             SymRealOnLoad();
       window.open = SymRealWinOpen;
       SymRealOnUnload = window.onunload;
       window.onunload = SymOnUnload;
     }
     
     SymRealOnLoad = window.onload;
     window.onload = SymOnLoad;
     
     //-->
</SCRIPT>

</BODY>
</HTML>
--------------------------------
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا