Subscribe Twitter

Thursday, October 14, 2010

ျမန္မာ သကၠရာဇ္ Codding Javascript

ျမန္မာျပကၡဒိန္ကို Javascript နဲ႔ဘယ္လိုေရးထားလဲကၽြန္ေတာ္ ေျဖျပတာပါ။ ကို၀ဏၰကိုေရးထားတဲ့ကုဒ္ပါ။

ျမန္မာ သကၠရာဇ္ ၁၃၇၂ ခုႏွစ္ ေတာ္သတင္းလဆုတ္ စသည္ျဖင့္တစ္ေၾကာင္းထဲေပၚေအာင္ေအာက္က Code ေတြကိုေရးရပါတယ္။ ေလ့လာၾကည့္ၾကပါ.......

//
// Original C# Code - Grand Master (Ko Wunna Ko?)
// Ported to Javascript & Changed Output to Zawgyi - Soe Min (Mark) (soemin@my-mm.org)
// License for Javascript - Non-Commercial
//

var MyanmarCalendar={
Mday:'',Myear:'',MMon:'',typeyear:'',typemonth:'',MMonth:'',HMonth:'',My:'',aTartday:'',Overdays:'',Odays:'',Firstday:'',Marthday:''
}

var PII = 0.0174532925199433;
var PIII = 57.2957795130823;

var a=b=Result1=d=t=x=t0=ut=sg=TJd=0;

function SunTransist(Year, Total) {
var Tinkan, Kali, C;
var Nyear = 0;
Tinkan = Totaldays(31, 12, (Year - 1), 0, 0);
Kali = Year + 3101;
C = (Kali - (Tinkan / 365.2587565)) * 365.2587565;
C += Tinkan;
if (Total < C) Nyear = 0; else if (Total >= C)
Nyear = 1;
return Nyear;
}

function TotalJdays(day, month, year, Hour, Min) {

var H1 = 0, M1 = 0;
var Tim = 0;
var Dj = 0;

H1 = 1.0*(Hour);
M1 = 1.0*(Min);

Tim = (H1 + (M1 / 60));

Dj = julday(year, month, day, Tim, 1);
Dj -= 2415019.5;
TJd = Dj;
return TJd;
}

function Totaldays(day, month, year, Hour, Min) {

var H1 = 0, M1 = 0;
var Tim = 0;
var Tot = 0, Dj = 0;

H1 = 1.0*(Hour);
M1 = 1.0*(Min);

Tim = (H1 + (M1 / 60));

Dj = julday(year, month, day, Tim, 1);
Dj -= 2415019.5;
TJd = Dj;

Tot = Dj + 1826554;
return Tot;
}

function julday(year, month, day, hour, gregflag) {
var jd = 0;
var u = 0, u0 = 0, u1 = 0, u2 = 0;
u = year;
if (month < 3) u -= 1; u0 = u + 4712.0; u1 = month + 1.0; if (u1 < 4) u1 += 12.0; jd = Math.floor(u0 * 365.25) + Math.floor(30.6 * u1 + 0.000001) + day + hour / 24.0 - 63.5; if (gregflag == 1) { u2 = Math.floor(Math.abs(u) / 100) - Math.floor(Math.abs(u) / 400); if (u < 0.0) u2 = -u2; jd = jd - u2 + 2; if ((u < 0.0) && (u / 100 == Math.floor(u / 100)) && (u / 400 != Math.floor(u / 400))) jd -= 1; } return jd; } function SuraMyear(day, month, Year, Wa) { var mr = MyanmarCalendar; var NameHm; var ResD; var NameMo; var ResY = 0; var Tyear = 0; var MMM, MMY; var MDay; var My, aTartday, Overdays, Odays, Firstday, Marthday; var total, Mo; var Cyear =[ 0, 30, 61, 91, 122, 153, 183, 214, 244, 275, 306, 334 ]; var Zy = 0; var SMyear =[ -1, 28, 58, 87, 117, 146, 176, 205, 235, 264, 294, 323, 353, 382, 411, 441 ]; var DMyear =[ -1, 28, 58, 87, 117, 147, 176, 206, 235, 265, 294, 324, 354, 383, 412, 442 ]; var DDMyear =[ -1, 28, 58, 88, 118, 148, 177, 207, 236, 266, 295, 325, 355, 384, 413, 443 ]; var S =[ 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30 ]; var D =[ 29, 30, 29, 30, 30, 29, 30, 29, 30, 29, 30, 29, 30 ]; var DD =[ 29, 30, 30, 30, 30, 29, 30, 29, 30, 29, 30, 29, 30 ]; var SMon =[ 'တန္ခူး', 'ကဆုန္', 'နယုန္', 'ဝါဆို', 'ဝါေခါင္', 'ေတာ္သလင္း', 'သီတင္းကြ်တ္', 'တန္ေဆာင္မုန္း', 'နတ္ေတာ္', 'ျပာသို', 'တပို႕တြဲ', 'တေပါင္း', 'တန္ခူး', 'ကဆုန္', 'နယုန္' ]; var DMon =['တန္ခူး', 'ကဆုန္', 'နယုန္', 'ပ-ဝါဆို', 'ဒု-ဝါဆို', 'ဝါေခါင္', 'ေတာ္သလင္း', 'သီတင္းကြ်တ္', 'တန္ေဆာင္မုန္း', 'နတ္ေတာ္', 'ျပာသို', 'တပို႕တြဲ', 'တေပါင္း', 'တန္ခူး', 'ကဆုန္' ]; var Tot = Totaldays(day, month, Year, 0, 0); Tyear = Math.abs(Year); if ((Tyear % 4 == 0) && (Tyear % 100 != 0) || Tyear % 400 == 0) Cyear[11] = 335; month -= 4; if (month < 0) { month += 12; if (Year <= 0) Year++; else Year--; } if (Year == 0) Year = -1; Tyear = Year; if (Tyear <= -1) Year++; My = Year + 3101; aTartday = Math.floor((My * 365.2587565)); Odays = My * 11.06483; Overdays = Math.floor(Odays % 30.0); Firstday = aTartday - Overdays; Marthday = Math.floor(Totaldays(31, 3, Tyear, 0, 0)); Zy = Number(Math.floor((Marthday - Firstday))); total = Zy + Cyear[month] + day; Mo = month; MMY = Wa; if (Wa == 0) { total -= SMyear[month]; if (total > S[month]) {
total -= S[month];
month++;
if (month > 12) month -= 12;
Mo = month;
}
MDay = S[month] - 15;

} else if (Wa == 1) {
total -= DMyear[month];
if (total > D[month]) {
total -= D[month];
month++;
if (month > 12) month -= 12;
Mo = month;
}
MDay = D[month] - 15;
} else {
total -= DDMyear[month];
if (total > DD[month]) {
total -= DD[month];
month++;
if (month > 12) month -= 12;
Mo = month;
}
MDay = DD[month] - 15;
}
MMM = Mo;
if (SunTransist(Year, Tot) == 1)
ResY = Year - 638;
else if (SunTransist(Year, Tot) == 0)
ResY = Year - 639;

ResD = total;
if (ResD <= 0) { Mo--; if (Mo < 0) Mo += 12; if (Wa == 0) ResD += S[Mo]; else if (Wa == 1) ResD += D[Mo]; else ResD += DD[Mo]; } if(ResD==30){ ResD=15; NameHm = 'လကြယ္'; }else if (ResD > 15) {
ResD -= 15;
NameHm = 'လျပည့္ေက်ာ္';
} else if (ResD == 15) {
NameHm = 'လျပည့္';
} else {
NameHm = 'လဆန္း';
}

var Yres = ResY;

if (Wa == 0)
NameMo = SMon[Mo];
else
NameMo = DMon[Mo];


if (Yres < 639) ResY += 3739; mr.MMon = Mo; mr.HMonth = NameHm; mr.Mday = ResD; mr.MMonth = NameMo; mr.Myear = ResY; mr.typeyear = MMY; mr.aTartday = aTartday; mr.Firstday = Firstday; mr.Odays = Odays; mr.Overdays = Overdays; mr.Marthday = Marthday; return mr; } var d=new Date(); var mr=SuraMyear(d.getDate(),d.getMonth()+1,d.getFullYear(),0); md=function(x){return String(x).replace(/[\d]/g,function (x){return String.fromCharCode(x.charCodeAt(0)+0x1010)})} document.write('ျမန္မာ သကၠရာဇ္ '+md(mr.Myear)+' ခုႏွစ္ '+mr.MMonth+" "+mr.HMonth+(mr.Mday!=15?" "+md(mr.Mday)+' ရက္':''));