2017-01-02 104 views
-1

我獲得Hijri +格里高利日期的JavaScript代碼。我想首先把回曆日期和下一個公曆是這樣的:格式化Hijri和陽曆日期

Senin,2 Januari 2017年M/3 Rabiul Tsani 1438^h
Senin,3 Rabiul Tsani 1438 H/2 Januari 2017年中號

請幫助我,因爲我無法編輯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","Rabiul Awwal","Rabiul Tsani","Jumadil Ula","Jumadil Tsani","Rajab","Sya\'ban","Ramadhan","Syawwal","Dzul Qa\'dah","Dzul 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("Ahad","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"); 
 
var monthname=new Array("Januari","Februari","Maret","April","Mei"," Juni","Juli","Agustus","September","Oktober","November","Desember"); 
 

 
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(" M/" + h.toString() + " H &nbsp;&nbsp;");

回答

0

最後,我可以通過自己的傢伙編輯,哈哈哈,即使我不是程序員。 謝謝你的回答。如果有人願意使用此代碼,在這裏,我將分享它。

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","Rabiul Awal","Rabiul Akhir","Jumadil Awal","Jumadil Akhir","Rajab","Sya'ban","Ramadhan","Syawal","Zulqai'dah","Zulhijjah"); 
 
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 ("Ahad","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"); 
 
var monthname=new Array("Januari","Februari","Maret","April","Mei"," Juni","Juli","Agustus","September","Oktober","November","Desember"); 
 
var y = tod.getFullYear(); 
 
var m = tod.getMonth(); 
 
var d = tod.getDate(); 
 
var dow = tod.getDay(); 
 
document.write(weekday[dow] + ", "); 
 
m++; 
 
fixd=gregToFixed(y, m, d); 
 
var steve=new Hijri(1421, 11, 28); 
 
steve = fixedToHijri(fixd); 
 
document.write(" " + steve.toString() + "&nbsp;&nbsp;"); 
 
document.write("/" + " " + d + " " + monthname[m] + " " + y); 
 
m++;