หมายเหตุ: หลังเผยแพร่ คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง

  • ไฟร์ฟอกซ์ / ซาฟารี: กด 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> */