ผู้ใช้:Bact/Scripts/test/monobook.js - วิกิพีเดีย

# ผู้ใช้:Bact/Scripts/test/monobook.js

### จากวิกิพีเดีย สารานุกรมเสรี

< ผู้ใช้:Bact | Scripts | test

หมายเหตุ: หลังจากบันทึกแล้ว, คุณต้องล้างแคชของเบราว์เซอร์เสียก่อน จึงจะเห็นการเปลี่ยนแปลง: Mozilla/Safari/Konqueror: กด Shift ค้าง แล้วกด Reload (หรือ Ctrl-Shift-R), IE: กด Ctrl-F5, Opera: กด 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> */

ดึงข้อมูลจาก "http://th.wikipedia.org../../../b/a/c/%E0%B8%9C%E0%B8%B9%E0%B9%89%E0%B9%83%E0%B8%8A%E0%B9%89%7EBact_Scripts_test_monobook.js_2358.html".

##### Views

- หน้าผู้ใช้
- อภิปราย
- รุ่นปัจจุบัน

##### ค้นหา