<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="description" content="A great information site about Islam and Muslims in text,audio and video. Also, a good reference for non-Muslims who are searching about Islam, Muslims, Prophet Muhammed(pbuh), other prophets (e.g. Jesus, Mousa) and religions (Christianity, Judaism, Buddism) ">
<meta name="Keywords" content="Islam Allah God Religion Muslim Mohammed Muhammad Prophet Arab American Jesus Christianity Judaism Jew Catholic Real Audio Quran Hadith Imam Islam Islam Salat Interest Islamic Islamiyet">
<title>Hijri Converter</title>
<script>
function weekDay(wdn){
					if(wdn==0){
						return "Monday"
						}
					if(wdn==1){
						return "Tuesday"
						}
					if(wdn==2){
						return "Wednesday"
						}
					if(wdn==3){
						return "Thursday"
						}
					if(wdn==4){
						return "Friday"
						}
					if(wdn==5){
						return "Saturday"
						}
					if(wdn==6){
						return "Sunday"
						}
	return ""
}
function isnumeric(num)
  {
    var strlen = num.length
    var i
    for ( i = 0; i < strlen ; ++i )
    {
      //if (!((num.charAt(i) >= '0') && (num.charAt(i)<='9') || (num.charAt(i)=='.')))
      if (!((num.charAt(i) >= '0') && (num.charAt(i)<='9') || (num.charAt(i)=='.') || (num.charAt(i)=='-')))
      {
           return false;
      }
    }
  }
</script>
</head>
<body>
<form name="Hijri">
<table width="330" border="0" align="center" cellpadding="0" cellspacing="0" style="border: 1px solid #dfdfdf">
    <tr valign="top">
                    <td align="center" style="border-bottom: 1px dotted #dfdfdf"> <span class="secondary-header"><img border="0" src="http://www.islamicity.com/ps/islamicityLogo.jpg" width="150" height="39"><br>
                      <font face="Times New Roman"><b>
                      <font size="4">Hijri Date Converter
                      </font>
                      </b>
                      <font size="3" align="center"><br>
                      Today's Date: <SCRIPT>
			var mydate=new Date()
			var year=mydate.getYear()
			var day=mydate.getDay()-1
			var wday=weekDay(day)
			var month=mydate.getMonth()+1
				if (month<10)
				month="0"+month
			var daym=mydate.getDate()
				if (daym<10)
				daym="0"+daym
				document.write("<font color='#336699'>"+wday+", "+month+"/"+daym+"/"+year+"</font>")
			</SCRIPT>
                      </font></span> </font> </td>
                  </tr>
	<tr valign="top">
      <td style="border-bottom: 1px dotted #dfdfdf">  
        <table width="60%" border="0" align="center" cellpadding="0" cellspacing="0" style="border: 1px solid #cccccc">
					<tr>
                          <td style="padding: 5px" colspan="3" align="center" bgcolor="#C0C0C0">
                        <b>Gregorian Calender</b>
						</td></tr>
					<tr>
                          <td style="padding: 5px" bgcolor="#F6F6F6">
                        Month
						</td><td style="padding: 5px" bgcolor="#F6F6F6">
                        Day
              			</td><td style="padding: 5px" bgcolor="#F6F6F6">
                        Year
             			</td></tr>
					<tr>
                          <td style="padding: 5px" height="35" bgcolor="#F6F6F6">
              			<SELECT name="CMonth" size="1">
                			<OPTION value=1 selected>01:January</OPTION>
                			<OPTION value=2>02:February</OPTION>
                			<OPTION value=3>03:March</OPTION>
                			<OPTION value=4>04:April</OPTION>
                			<OPTION value=5>05:May</OPTION>
                			<OPTION value=6>06:June</OPTION>
                			<OPTION value=7>07:July</OPTION>
                			<OPTION value=8>08:August</OPTION>
                			<OPTION value=9>09:September</OPTION>
                			<OPTION value=10>10:October</OPTION>
                			<OPTION value=11>11:November</OPTION>
                			<OPTION value=12>12:December</OPTION>
              			</SELECT>
						</td><td style="padding: 5px" height="35" bgcolor="#F6F6F6">
              			<SELECT name="CDay" size="1">
                			<OPTION value=1 selected>1</OPTION>
                			<OPTION value=2>2</OPTION>
                			<OPTION value=3>3</OPTION>
                			<OPTION value=4>4</OPTION>
                			<OPTION value=5>5</OPTION>
                			<OPTION value=6>6</OPTION>
                			<OPTION value=7>7</OPTION>
                			<OPTION value=8>8</OPTION>
                			<OPTION value=9>9</OPTION>
                			<OPTION value=10>10</OPTION>
               				<OPTION value=11>11</OPTION>
                			<OPTION value=12>12</OPTION>
                			<OPTION value=13>13</OPTION>
                			<OPTION  value=14>14</OPTION>
                			<OPTION value=15>15</OPTION>
                			<OPTION value=16>16</OPTION>
                			<OPTION value=17>17</OPTION>
                			<OPTION value=18>18</OPTION>
                			<OPTION value=19>19</OPTION>
                			<OPTION value=20>20</OPTION>
                			<OPTION value=21>21</OPTION>
                			<OPTION value=22>22</OPTION>
                			<OPTION value=23>23</OPTION>
                			<OPTION value=24>24</OPTION>
                			<OPTION value=25>25</OPTION>
                			<OPTION value=26>26</OPTION>
                			<OPTION value=27>27</OPTION>
                			<OPTION value=28>28</OPTION>
                			<OPTION value=29>29</OPTION>
                			<OPTION value=30>30</OPTION>
                			<OPTION value=31>31</OPTION>
						</SELECT>
              			</td><td style="padding: 5px" height="35" bgcolor="#F6F6F6">
              			<INPUT value=2006 name="CYear" size="6">
             			</td></tr>
            		<tr>
              			  <td style="padding: 5px" colspan="3" align="center" height="37" bgcolor="#F6F6F6">
                            <INPUT onclick=GregToIsl(this.form) type=button value="Gregorian to Hijri Date" name="GtoH">
                          </td>
                    </tr>
            		<tr>
              			  <td style="padding: 5px" height="25">
                          </td>
              			  <td style="padding: 5px" height="25"></td>
              			  <td style="padding: 5px" height="25"></td>
                    </tr>
            		<tr>
              			  <td colspan="3" bgcolor="#C0C0C0" align="center" bordercolor="#000000" height="30">
                            <b>Hijri/Islamic Calender</b></td>
                    </tr>
            		<tr>
                          <td bgcolor="#F6F6F6" height="22">
                        Month
                			</td><td bgcolor="#F6F6F6" height="22">
                            Day
                			</td><td bgcolor="#F6F6F6" height="22">
                            Year
                			</td></tr>
            		<tr>
                          <td height="35" bgcolor="#F6F6F6">
                		<SELECT name="HMonth" size="1">
                  				<OPTION value=1 selected>01:Muharram</OPTION>
                  				<OPTION value=2>02:Safar</OPTION>
                  				<OPTION value=3>03:Rabi Al-Awwal</OPTION>
                  				<OPTION value=4>04:Rabi Al-Thani</OPTION>
                  				<OPTION value=5>05:Jumada Al-Awwal</OPTION>
                  				<OPTION value=6>06:Jumada Al-Thani</OPTION>
                  				<OPTION value=7>07:Rajab</OPTION>
                  				<OPTION value=8>08:Sha'ban</OPTION>
                  				<OPTION value=9>09:Ramadan</OPTION>
                  				<OPTION value=10>10:Shawwal</OPTION>
                  				<OPTION value=11>11:Dhul Qa'idah</OPTION>
                  				<OPTION value=12>12:Dhul Hijjah</OPTION>
                			</SELECT>
                			</td><td height="35" bgcolor="#F6F6F6">
                			<SELECT name="HDay" size="1">
                  				<OPTION value=1 selected>1</OPTION>
                  				<OPTION value=2>2</OPTION>
                  				<OPTION value=3>3</OPTION>
                  				<OPTION value=4>4</OPTION>
                  				<OPTION value=5>5</OPTION>
                  				<OPTION value=6>6</OPTION>
                  				<OPTION value=7>7</OPTION>
                  				<OPTION value=8>8</OPTION>
                  				<OPTION value=9>9</OPTION>
                  				<OPTION value=10>10</OPTION>
                  				<OPTION value=11>11</OPTION>
                  				<OPTION value=12>12</OPTION>
                  				<OPTION value=13>13</OPTION>
                  				<OPTION value=14>14</OPTION>
                  				<OPTION value=15>15</OPTION>
                  				<OPTION value=16>16</OPTION>
                  				<OPTION value=17>17</OPTION>
                  				<OPTION  value=18>18</OPTION>
                  				<OPTION value=19>19</OPTION>
                  				<OPTION value=20>20</OPTION>
                  				<OPTION value=21>21</OPTION>
                  				<OPTION value=22>22</OPTION>
                  				<OPTION value=23>23</OPTION>
                  				<OPTION value=24>24</OPTION>
                  				<OPTION value=25>25</OPTION>
                  				<OPTION value=26>26</OPTION>
                  				<OPTION value=27>27</OPTION>
                  				<OPTION value=28>28</OPTION>
                  				<OPTION value=29>29</OPTION>
                  				<OPTION value=30>30</OPTION>
                			</SELECT>
                			</td><td height="35" bgcolor="#F6F6F6">
                			<INPUT name="HYear" size="6">
                			</td></tr>
            		<tr>
              			  <td colspan="3" align="center" height="37" bgcolor="#F6F6F6">
                            <INPUT onclick=IslToGreg(this.form) type=button value="Hijri to Gregorian Date" name="HtoG">
                          </td>
                    </tr>
          		</table> 
      </td></tr>
		<tr>
			<td align="center" class="secondary-header"><br>
			 Day of the Week:
            <INPUT name="wd" size="12">
        <br>
        <INPUT style="visibility: hidden" name="JD" >
        <br>
                    </td>
    	</tr>
	</table>
                <br>
                <br>
                <br>
              </form>
<SCRIPT language=JavaScript>
function intPart(floatNum){
if (floatNum< -0.0000001){
	 return Math.ceil(floatNum-0.0000001)
	}
return Math.floor(floatNum+0.0000001)
}
function GregToIsl(arg) {
		if(gvalidate()==false){
		return false
		}
	d=parseInt(arg.CDay.value)
	m=parseInt(arg.CMonth.value)
	y=parseInt(arg.CYear.value)
					if ((y>1582)||((y==1582)&&(m>10))||((y==1582)&&(m==10)&&(d>14)))
						{
						jd=intPart((1461*(y+4800+intPart((m-14)/12)))/4)+intPart((367*(m-2-12*(intPart((m-14)/12))))/12)-
	intPart( (3* (intPart(  (y+4900+    intPart( (m-14)/12)     )/100)    )   ) /4)+d-32075
						}
						else
						{
						jd = 367*y-intPart((7*(y+5001+intPart((m-9)/7)))/4)+intPart((275*m)/9)+d+1729777
						}
					arg.JD.value=jd
					arg.wd.value=weekDay(jd%7)
					l=jd-1948440+10632
					n=intPart((l-1)/10631)
					l=l-10631*n+354
					j=(intPart((10985-l)/5316))*(intPart((50*l)/17719))+(intPart(l/5670))*(intPart((43*l)/15238))
					l=l-(intPart((30-j)/15))*(intPart((17719*j)/50))-(intPart(j/16))*(intPart((15238*j)/43))+29
					m=intPart((24*l)/709)
					d=l-intPart((709*m)/24)
					y=30*n+j-30
	arg.HDay.value=d
	arg.HMonth.value=m
	arg.HYear.value=y
}
function IslToGreg(arg) {
		if(hvalidate()==false){
		return false
		}
	d=parseInt(arg.HDay.value)
	m=parseInt(arg.HMonth.value)
	y=parseInt(arg.HYear.value)
	jd=intPart((11*y+3)/30)+354*y+30*m-intPart((m-1)/2)+d+1948440-385
	arg.JD.value=jd
	arg.wd.value=weekDay(jd%7)
					if (jd> 2299160 )
						{
						 l=jd+68569
						 n=intPart((4*l)/146097)
						l=l-intPart((146097*n+3)/4)
						 i=intPart((4000*(l+1))/1461001)
						l=l-intPart((1461*i)/4)+31
						 j=intPart((80*l)/2447)
						d=l-intPart((2447*j)/80)
						l=intPart(j/11)
						m=j+2-12*l
						y=100*(n-49)+i+l
						}
					else
						{
						 j=jd+1402
						 k=intPart((j-1)/1461)
						 l=j-1461*k
						 n=intPart((l-1)/365)-intPart(l/1461)
						 i=l-365*n+30
						j=intPart((80*i)/2447)
						d=i-intPart((2447*j)/80)
						i=intPart(j/11)
						m=j+2-12*i
						y=4*k+n+i-4716
						}
	arg.CDay.value=d
	arg.CMonth.value=m
	arg.CYear.value=y
}
</script>
<script Language="JavaScript">
//adji added
var cdays=new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var hdays=new Array(30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29);
function gvalidate()
{
	var yleap,d,m,y,m1,m2,m3,leap;
	d=document.Hijri.CDay.value;
	m=document.Hijri.CMonth.value;
	y=document.Hijri.CYear.value;
	if(document.Hijri.CYear.value=="")
	{
 		alert("Gregorian Year can be not empty");
		return false;
		document.Hijri.CYear.focus();
	}
	if(isnumeric(y)==false)
	{
		alert("Gregorian Year should be in numerics")
		document.Hijri.CYear.focus();
		return false;
	}
	m1=y%4;
	m2=y%100;
	m3=y%400;
	leap=((m==2)&&((m3==0)||((m1==0)&&(m2!=0))))?1:0;
	if(d>(cdays[m-1]+leap))
	{
		alert(m+"/"+d+"/"+y+" is not a valid Gregorian date.");
		return false;
		document.Hijri.CDay.focus();
	}
	return true;
}
//adji added
</script>
</script>
<script Language="JavaScript">
//adji added
var hdays=new Array(30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29);
function hvalidate()
{
	var dh,mh,yh,m1h,leaph;
	dh=document.Hijri.HDay.value;
	mh=document.Hijri.HMonth.value;
	yh=document.Hijri.HYear.value;
	if(document.Hijri.HYear.value=="")
	{
		alert("Hijri Year can not be empty");
		return false;
		document.Hijri.HYear.focus();
	}
	if(isnumeric(yh)==false)
	{
		alert("Hijri Year should be in numerics")
		document.Hijri.HYear.focus();
		return false;
	}
	m1h=yh%30;
   //the 2nd, 5th, 7th, 10th, 13th, 16th, 18th, 21st, 24th, 26th, and 29th years are leap years.
	leaph=((mh==12)&&(m1h==2||m1h==5||m1h==7||m1h==10||m1h==13||m1h==16||m1h==18||m1h==21||m1h==24||m1h==26||m1h==29))?1:0;
	if(dh>(hdays[mh-1]+leaph))
	{
		alert(mh+"/"+dh+"/"+yh+" is not a valid Hijri date.");
		return false;
		document.Hijri.HDay.focus();
	}
	return true;
}
//adji added
</script>
</body>
</html>