ผู้ใช้:Bact/Scripts/test/monobook.js
หมายเหตุ: หลังเผยแพร่ คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง
- ไฟร์ฟอกซ์ / ซาฟารี: กด Shift ค้างขณะคลิก Reload หรือกด Ctrl-F5 หรือ Ctrl-R (⌘-R บนแมค)
- กูเกิล โครม: กด Ctrl-Shift-R (⌘-Shift-R บนแมค)
- อินเทอร์เน็ตเอกซ์พลอเรอร์ และ Edge: กด Ctrl ค้างขณะคลิก Refresh หรือกด Ctrl-F5
- โอเปร่า: กด Ctrl-F5
/* <pre><nowiki> */
// [test/experimental] override WhatIsThaiYear() in [[User:Jutiphan/Scripts/editor/monobook.js]]
// === การแปลงศักราช ===
// * พุทธศักราช → คริสต์ศักราช
// ** พ.ศ. 2484 เป็นต้นไป → ค.ศ. = พ.ศ. - 543
// ** ไม่เกิน พ.ศ. 2483 (พ.ศ. 2483 ไม่มีเดือน มกราคม ถึง มีนาคม)
// *** เมษายน ถึง ธันวาคม → ค.ศ. = พ.ศ. - 543
// *** มกราคม ถึง มีนาคม → ค.ศ. = พ.ศ. - 542
// * คริสต์ศักราช → พุทธศักราช
// ** ค.ศ. 1941 เป็นต้นไป → พ.ศ. = ค.ศ. + 543
// ** ไม่เกิน ค.ศ. 1940
// *** มกราคม ถึง มีนาคม → พ.ศ. = ค.ศ. + 542
// *** เมษายน ถึง ธันวาคม → พ.ศ. = ค.ศ. + 543
// สำหรับการแปลงศักราชที่ไม่ทราบเดือน ให้บวกหรือลบด้วย 543 เป็นศักราชนั้นโดยประมาณ
//
// อ้างอิง [[พุทธศักราช#พุทธศักราชและคริสต์ศักราช]], [[พูดคุย:วิกิพีเดีย:โครงการวันและปีอ้างอิง]]
//
// ========== สอบถาม พ.ศ. ==========
function WhatIsThaiYear() {
var what = getSelText();
var shortName = false;
var askMode = false;
var answer = "";
var yr;
var txtArea = document.editform.wpTextbox1;
if (what == null || what.length == 0) {
what = getSelTextArea();
}
if (what != null && what.length > 0) {
what = what.replace(/ค\.ศ\. ?(\d{1,4})/g, "$1 AD");
/*if (what.search(/\[\[\d{1,4}\]\]/) != -1) {
shortName = true;
what = what.replace(/\[|\]/g, "");
}*/
}
if (what == null || what.length == 0) {
what = prompt("ระบุปีค.ศ.:");
askMode = true;
}
if (what == null || what.length == 0) {
return;
}
if (askMode) {
if (isNaN(what)) {
return;
}
yr = parseInt(what);
if (yr <= 1940) {
alert("(คริสตศักราช และ พุทธศักราช ใน ค.ศ. ที่ระบุ เหลื่อมกันอยู่)\n\n"
+ 'มกราคม - มีนาคม ค.ศ. ' + what + ' อยู่ใน พ.ศ. ' + (yr+542) + "\n"
+ 'เมษายน - ธันวาคม ค.ศ. ' + what + ' อยู่ใน พ.ศ. ' + (yr+543));
} else
if (yr > 1940) {
alert("ค.ศ. " + what + " เท่ากับ พ.ศ. " + (yr+543));
}
return;
}
what = what.replace(/(January|February|March|April|May|June|July|August|September|October|November|December) (\d{1,2})/, "$2 $1");
what = what.replace(/January/ig, "มกราคม");
what = what.replace(/February/ig, "กุมภาพันธ์");
what = what.replace(/March/ig, "มีนาคม");
what = what.replace(/April/ig, "เมษายน");
what = what.replace(/May/ig, "เมษายน");
what = what.replace(/June/ig, "มิถุนายน");
what = what.replace(/July/ig, "กรกฎาคม");
what = what.replace(/August/ig, "สิงหาคม");
what = what.replace(/September/ig, "กันยายน");
what = what.replace(/October/ig, "ตุลาคม");
what = what.replace(/November/ig, "พฤศจิกายน");
what = what.replace(/December/ig, "ธันวาคม");
//Fix short BC, prevent conflict with just numbers
what = what.replace(/BC\|\d{1,4}/ig,"BC!");
var results = what.match(/(\d{3,4})(?! (BC|AD))/ig);
if(results) {
for (var i = 0; i < results.length; i++) {
yr = parseInt(results[i]) + 543;
re = new RegExp(results[i] + "(?! (BC|AD))", "ig");
what = what.replace(re, "พ.ศ. " + yr);
}
}
//!BC case handling (for short name)
results = what.match(/(\d{1,4}) BC!/ig);
if(results) {
for (var i = 0; i < results.length; i++) {
yr = 544 - parseInt(results[i]);
re = new RegExp(results[i], "ig");
if(yr <= 0) {
yr = (yr-1)*-1;
what = what.replace(re, yr + " ปีก่อนพุทธศักราช|" + yr);
} else {
what = what.replace(re, "พ.ศ. " + yr);
}
}
}
//BC case handling
results = what.match(/(\d{1,4}) BC/ig);
if(results) {
for (var i = 0; i < results.length; i++) {
yr = 544 - parseInt(results[i]);
re = new RegExp(results[i], "ig");
if(yr <= 0) {
yr = (yr-1)*-1;
what = what.replace(re, yr + " ปีก่อนพุทธศักราช");
} else {
what = what.replace(re, "พ.ศ. " + yr);
}
}
}
//AC case handling
results = what.match(/(\d{1,4}) AD/ig);
if(results) {
for (var i = 0; i < results.length; i++) {
yr = parseInt(results[i]) + 543;
re = new RegExp(results[i], "ig");
what = what.replace(re, "พ.ศ. " + yr);
}
}
what = what.replace(/,/g, "");
what = "** " + what + " **";
answer = what;
if (document.selection && !is_gecko) {
var theSelection = document.selection.createRange().text;
theSelection = theSelection.substring(0, theSelection.length - 1);
var range = document.selection.createRange();
range.text = answer;
range.select();
} else if (txtArea.selectionStart || txtArea.selectionStart == '0') {
var startPos = txtArea.selectionStart;
var endPos = txtArea.selectionEnd;
var scrollTop = txtArea.scrollTop;
txtArea.value = txtArea.value.substring(0, startPos) + answer + txtArea.value.substring(endPos, txtArea.value.length);
setCaretTo(txtArea, startPos + answer.length);
txtArea.scrollTop = scrollTop;
} else {
alert("การใช้งาน พ.ศ. อะไร มีปัญหาและไม่สามารถดำเนินการเสร็จสิ้นได้ กรุณาแจ้งที่ คุยกับผู้ใช้:Jutiphan");
}
}
/* </nowiki></pre> */