לדלג לתוכן

משתמש:רובין בוט/ניסוי.js

מתוך חב"דפדיה, אנציקלופדיה חב"דית חופשית

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
mw.loader.using('mediawiki.util', function () {
  $(function () {
    var sidebar = $('#p-navigation');
    sidebar.append('<div style="margin:5px;"><button id="hebrew-to-greg">המר תאריך לועזי</button></div>');

    $('#hebrew-to-greg').on('click', function () {
      var input = prompt('הכנס תאריך עברי כמו: י"ח חשוון תשל"א');
      if (!input) return;

      var months = {
        'תשרי':'Tishrei','חשוון':'Cheshvan','כסלו':'Kislev','טבת':'Tevet',
        'שבט':'Shevat','אדר':'Adar','אדר ב׳':'AdarII','ניסן':'Nisan',
        'אייר':'Iyyar','סיון':'Sivan','תמוז':'Tammuz','אב':'Av','אלול':'Elul'
      };

      var hebToNum = {
        'א':1,'ב':2,'ג':3,'ד':4,'ה':5,'ו':6,'ז':7,'ח':8,'ט':9,
        'י':10,'כ':20,'ל':30,'מ':40,'נ':50,'ס':60,'ע':70,'פ':80,'צ':90,
        'ק':100,'ר':200,'ש':300,'ת':400
      };

      function hebNumToInt(heb){
        heb = heb.replace(/[״׳]/g,'');
        var sum = 0;
        for (var i=0;i<heb.length;i++){
          sum += hebToNum[heb[i]] || 0;
        }
        return sum;
      }

      function parseHebrewYear(str){
        var letters = str.replace(/[״׳]/g,'').split('');
        var value = 0;
        letters.forEach(l => {
          value += hebToNum[l] || 0;
        });
        if (value < 1000) value += 5000;
        return value;
      }

      var parts = input.split(' ');
      if (parts.length < 3) {
        alert('פורמט לא תקין');
        return;
      }
      var day = hebNumToInt(parts[0]);
      var month = months[parts[1]];
      var year = parseHebrewYear(parts[2]);

      fetch(`https://www.hebcal.com/converter?cfg=json&hy=${year}&hm=${month}&hd=${day}&h2g=1`)
        .then(r=>r.json())
        .then(data=>{
          alert(`${data.gy}-${data.gm}-${data.gd}`);
        })
        .catch(err=>{
          alert('שגיאה בהמרה: '+err);
        });
    });
  });
});