2009-02-02

مىلادىيەنى ھىجرىيەگە ئايلاندۇرۇش كودى

بۈگۈن توردا ئويناۋېتىپ مىلادىيەنى ھىجرىيىەگە ئايلاندۇرۇش كودىنى تېپىۋالدىم.بۇ بىرjs كودى بولۇپ، قىستۇرغاندا ئاپتۇماتىك ھالدا كومپيۇتېر ۋاقتىنى ئوقۇپ چىقىپ، ئۇنى ھىجرىيە ھېسابىغا ئايلاندۇرىدىكەن. (بۇ كود سىز ئىشلىتىۋاتقان كومپيۇتېر ۋاقتىنىلا ئىشلتىىدۇ، كومپيۇتېرنىڭ ۋاقىتى خاتا بولسا ھاسىل بولغان نەتىجىمۇ خاتا بولىدۇ). ئەسلىسى ئېنگلىزچە بولغان بۇ كودنى ئاددىي ھالدا ئۇيغۇرچىلاشتۇرۇپ قويدۇم. بەزى ئاي ناملىرى توغرا بولماي قالغان بولۇىشى مۇمكىن، كۆپچىلىك بىرلىكتە تۈزىتىۋالساق!

(كود مەنبەسى: ئادرىس بەك ئوزۇن ئىكەن، بۇ يەرنى چېكىپ كىرىڭ)

ئەسلى ئېنگلىزچە كود:


<script language="JavaScript">

var fixd;

function isGregLeapYear(year)
{
return year%4 == 0 && year%100 != 0 year%400 == 0;
}


function gregToFixed(year, month, day)
{
var a = Math.floor((year - 1) / 4);
var b = Math.floor((year - 1) / 100);
var c = Math.floor((year - 1) / 400);
var d = Math.floor((367 * month - 362) / 12);

if (month <= 2)
e = 0;
else if (month > 2 && isGregLeapYear(year))
e = -1;
else
e = -2;

return 1 - 1 + 365 * (year - 1) + a - b + c + d + e + day;
}

function Hijri(year, month, day)
{
this.year = year;
this.month = month;
this.day = day;
this.toFixed = hijriToFixed;
this.toString = hijriToString;
}

function hijriToFixed()
{
return this.day + Math.ceil(29.5 * (this.month - 1)) + (this.year - 1) * 354 +
Math.floor((3 + 11 * this.year) / 30) + 227015 - 1;
}

function hijriToString()
{
var months = new Array("Muharram","Safar","Rabi-al Awwal","Rabi-al Thani","Jumada al-Ula","Jumada al-Thani","Rajab","Sha\'ban","Ramadhan","Shawwal","Dh ul Qa\'dah","Dhul Hijjah");
return this.day + " " + months[this.month - 1]+ " " + this.year;
}

function fixedToHijri(f)
{
var i=new Hijri(1100, 1, 1);
i.year = Math.floor((30 * (f - 227015) + 10646) / 10631);
var i2=new Hijri(i.year, 1, 1);
var m = Math.ceil((f - 29 - i2.toFixed()) / 29.5) + 1;
i.month = Math.min(m, 12);
i2.year = i.year;
i2.month = i.month;
i2.day = 1;
i.day = f - i2.toFixed() + 1;
return i;
}

var tod=new Date();
var weekday=new Array("Sunday","Monday","Tuesday","Wednesday","Thu rsday","Friday","Saturday");
var monthname=new Array("January","February","March","April","May"," June","July","August","September","October","Novem ber","December");

var y = tod.getFullYear();
var m = tod.getMonth();
var d = tod.getDate();
var dow = tod.getDay();
document.write(weekday[dow] + " " + d + " " + monthname[m] + " " + y);
m++;
fixd=gregToFixed(y, m, d);
var h=new Hijri(1421, 11, 28);
h = fixedToHijri(fixd);
document.write(" CE " + h.toString() + " AH &nbsp;&nbsp;");

</script>



مەن ئۇيغۇرچىلاشتۇرۇپ قويغان كود:




<script language="JavaScript">


var fixd;


function isGregLeapYear(year)
{
return year%4 == 0 && year%100 != 0 year%400 == 0;
}



function gregToFixed(year, month, day)
{
var a = Math.floor((year - 1) / 4);
var b = Math.floor((year - 1) / 100);
var c = Math.floor((year - 1) / 400);
var d = Math.floor((367 * month - 362) / 12);


if (month <= 2)
e = 0;
else if (month > 2 && isGregLeapYear(year))
e = -1;
else
e = -2;


return 1 - 1 + 365 * (year - 1) + a - b + c + d + e + day;
}


function Hijri(year, month, day)
{
this.year = year;
this.month = month;
this.day = day;
this.toFixed = hijriToFixed;
this.toString = hijriToString;
}


function hijriToFixed()
{
return this.day + Math.ceil(29.5 * (this.month - 1)) + (this.year - 1) * 354 +
Math.floor((3 + 11 * this.year) / 30) + 227015 - 1;
}


function hijriToString()
{
var months = new Array("مۇھەررەم","سەفەر","رەببىيەلئەۋۋەل","رەببىيەلئاخىر","جامادىيەلئەۋۋەل","جامادىيەلئاخىر","رەجەب","شەئبان","رامىزان","شەۋۋال","زۇلقەددە","زۇلھەججە");
return this.year+"/"+" "+this.day + " - " + months[this.month - 1]+ " " ;
}


function fixedToHijri(f)
{
var i=new Hijri(1100, 1, 1);
i.year = Math.floor((30 * (f - 227015) + 10646) / 10631);
var i2=new Hijri(i.year, 1, 1);
var m = Math.ceil((f - 29 - i2.toFixed()) / 29.5) + 1;
i.month = Math.min(m, 12);
i2.year = i.year;
i2.month = i.month;
i2.day = 1;
i.day = f - i2.toFixed() + 1;
return i;
}


var tod=new Date();
var weekday=new Array("يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە");
var monthname=new Array("يانۋار","فېۋرال","مارت","ئاپرىل","ماي"," ئيۇن","ئيۇل","ئاۋغۇست","سىنتەبىر","ئۆكتەبىر","نويابىر","دىكابىر");


var y = tod.getFullYear();
var m = tod.getMonth();
var d = tod.getDate();
var dow = tod.getDay();
document.write("مىلادىيە"+" :"+ y +"/"+" "+ d + "- " + monthname[m] +"؛"+weekday[dow] );
m++;
fixd=gregToFixed(y, m, d);
var h=new Hijri(1421, 11, 28);
h = fixedToHijri(fixd);
document.write( "&nbsp;&nbsp; &nbsp;&nbsp; ھېجرىيە :&nbsp;&nbsp;" + h.toString() );


</script>


ئۈلگىنى ئىزنا توپلىمىدىن كۆرۈڭ!


1 条评论: