如何使用JavaScript將陽曆日期轉換爲伊斯蘭回教日期?將陽曆日期轉換爲回曆日期
10
A
回答
14
function gmod(n,m){
return ((n%m)+m)%m;
}
function kuwaiticalendar(adjust){
var today = new Date();
if(adjust) {
adjustmili = 1000*60*60*24*adjust;
todaymili = today.getTime()+adjustmili;
today = new Date(todaymili);
}
day = today.getDate();
month = today.getMonth();
year = today.getFullYear();
m = month+1;
y = year;
if(m<3) {
y -= 1;
m += 12;
}
a = Math.floor(y/100.);
b = 2-a+Math.floor(a/4.);
if(y<1583) b = 0;
if(y==1582) {
if(m>10) b = -10;
if(m==10) {
b = 0;
if(day>4) b = -10;
}
}
jd = Math.floor(365.25*(y+4716))+Math.floor(30.6001*(m+1))+day+b-1524;
b = 0;
if(jd>2299160){
a = Math.floor((jd-1867216.25)/36524.25);
b = 1+a-Math.floor(a/4.);
}
bb = jd+b+1524;
cc = Math.floor((bb-122.1)/365.25);
dd = Math.floor(365.25*cc);
ee = Math.floor((bb-dd)/30.6001);
day =(bb-dd)-Math.floor(30.6001*ee);
month = ee-1;
if(ee>13) {
cc += 1;
month = ee-13;
}
year = cc-4716;
wd = gmod(jd+1,7)+1;
iyear = 10631./30.;
epochastro = 1948084;
epochcivil = 1948085;
shift1 = 8.01/60.;
z = jd-epochastro;
cyc = Math.floor(z/10631.);
z = z-10631*cyc;
j = Math.floor((z-shift1)/iyear);
iy = 30*cyc+j;
z = z-Math.floor(j*iyear+shift1);
im = Math.floor((z+28.5001)/29.5);
if(im==13) im = 12;
id = z-Math.floor(29.5001*im-29);
var myRes = new Array(8);
myRes[0] = day; //calculated day (CE)
myRes[1] = month-1; //calculated month (CE)
myRes[2] = year; //calculated year (CE)
myRes[3] = jd-1; //julian day number
myRes[4] = wd-1; //weekday number
myRes[5] = id; //islamic date
myRes[6] = im-1; //islamic month
myRes[7] = iy; //islamic year
return myRes;
}
function writeIslamicDate(adjustment) {
var wdNames = new Array("Ahad","Ithnin","Thulatha","Arbaa","Khams","Jumuah","Sabt");
var iMonthNames = new Array("Muharram","Safar","Rabi'ul Awwal","Rabi'ul Akhir",
"Jumadal Ula","Jumadal Akhira","Rajab","Sha'ban",
"Ramadan","Shawwal","Dhul Qa'ada","Dhul Hijja");
var iDate = kuwaiticalendar(adjustment);
var outputIslamicDate = wdNames[iDate[4]] + ", "
+ iDate[5] + " " + iMonthNames[iDate[6]] + " " + iDate[7] + " AH";
return outputIslamicDate;
}
這種轉換當前計算機日期回曆。而隨着稍加修改就可以實現這個片段更改任何日期伊斯蘭
document.write(writeIslamicDate(1));
4
兩者如果需要回歷日期從公曆日期(米拉迪日期)轉換的只有一年,你可以簡單地在JavaScript寫這個等式:
var GregorianYear = (new Date()).getFullYear();
var HijriYear = Math.round((GregorianYear - 622) * (33/32));
您可以在母版頁中使用這個簡單的等式在頁腳像 كلالحقوقمحفوطةل...©
<script type="text/javascript">document.write((new Date()).getFullYear())</script> م - <script type="text/javascript">var y = (new Date()).getFullYear();var h = Math.round((y - 622) * (33/32));document.write(h)</script> هـ
您將獲得: كلالحقوقمحفوطةل...©2014م - 1435ه
你也可以使用嵌入在ASP頁面C#爲:
<%= DateTime.Now.Year %> - <%= Math.Round((DateTime.Now.Year - 622) * 1.03125) %>
將返回時間:2014年 - 1436
相關問題
- 1. 將Boost陽曆日期轉換爲POD
- 2. 將Julian日期轉換爲Impala中的陽曆日期
- 3. 如何將陽曆日期轉換爲波斯日期?
- 4. 如何將波斯日期轉換爲陽曆日子?
- 5. 轉換陽曆日期到朱利安
- 6. 如何將公曆日期轉換爲公曆日期
- 7. 將日曆轉換爲日期
- 8. 將日期轉換爲日曆問題
- 9. 將朱利安日期轉換爲正式日曆日期
- 10. excel如何將儒略日期轉換爲日曆日期?
- 11. 將Julian日期轉換爲Postgresql中的日曆日期
- 12. 將日曆日期轉換爲正確日期
- 13. Java - 將日期時間轉換爲公曆日曆時間(日期)
- 14. 的boost ::陽曆:: date.day_number()返回Julian日期
- 15. 將JSF日曆日期轉換爲JodaTime中的轉換器
- 16. 我的日曆的日曆日期爲
- 17. gson:轉換/日期(1341348517698 + 0200)/日曆
- 18. 日曆/日期時區轉換問題
- 19. Primefaces日曆組件和日期轉換
- 20. jsf轉換器p:日曆日期
- 21. C:轉換Julian日期爲公曆
- 22. Java:陽曆日曆日期驗證問題
- 23. 以回曆日期格式顯示日期的日曆
- 24. 日曆日期轉換爲日期之前10月15日1582年公曆,以公曆開關
- 25. 將字符串轉換波斯日期公曆日期時間
- 26. 轉換朱利安日期爲公曆日期
- 27. 日曆日期轉換爲行與假期與狀態更新
- 28. 將陽曆轉換爲中國農曆
- 29. 如何將日曆日期轉換爲任何模塊的序號日期
- 30. 的boost ::陽曆::從STD日期:: string的
謝謝你的快速回復,我會盡量使用這個功能.. = D – FuNk 2011-03-03 07:21:14
猜怎麼着,真的有用..再次感謝你.. = D – FuNk 2011-03-03 07:23:47
好東西。謝謝 ! – Neophile 2011-10-30 21:24:00