pamplina

Kalendas: Roman calendar by @ElPamplina

Apr 6th, 2019
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     // Pamplinus liberum fecerunt omnes <elpamplinadecai@gmail.com> @ElPamplina
  2.     // (with romanize function by Steven Levithan)
  3.     //
  4.     // This program is free software: you can redistribute it and/or modify
  5.     // it under the terms of the GNU General Public License as published by
  6.     // the Free Software Foundation, either version 3 of the License, or
  7.     // (at your option) any later version.
  8.     //
  9.     // This program is distributed in the hope that it will be useful,
  10.     // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.     // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.     // GNU General Public License for more details.
  13.     //
  14.     // You should have received a copy of the GNU General Public License
  15.     // along with this program.  If not, see <https://www.gnu.org/licenses/>.
  16.    
  17.     function romanize (num) {
  18.         if (isNaN(num))
  19.             return NaN;
  20.         var digits = String(+num).split(""),
  21.             key = ["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM",
  22.                    "","X","XX","XXX","XL","L","LX","LXX","LXXX","XC",
  23.                    "","I","II","III","IV","V","VI","VII","VIII","IX"],
  24.             roman = "",
  25.             i = 3;
  26.         while (i--)
  27.             roman = (key[+digits.pop() + (i * 10)] || "") + roman;
  28.         return Array(+digits.join("") + 1).join("M") + roman;
  29.     }
  30.     function kalendas(diem) {
  31.         var mensibus = [
  32.             ["Ianuarias","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XIX Kalendas","ante diem XVIII Kalendas","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],
  33.             ["Februarias","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  34.             ["Martias","Kalendas","ante diem VI Nonas","ante diem V Nonas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  35.             ["Apriles","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVIII Kalendas","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  36.             ["Maias","Kalendas","ante diem VI Nonas","ante diem V Nonas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  37.             ["Iunias","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVIII Kalendas","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  38.             ["Iulias","Kalendas","ante diem VI Nonas","ante diem V Nonas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  39.             ["Augustas","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XIX Kalendas","ante diem XVIII Kalendas","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  40.             ["Septembres","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVIII Kalendas","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  41.             ["Octobres","Kalendas","ante diem VI Nonas","ante diem V Nonas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  42.             ["Novembres","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVIII Kalendas","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],  
  43.             ["Decembres","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XIX Kalendas","ante diem XVIII Kalendas","ante diem XVII Kalendas","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"],              
  44.             ["Ianuarias"],
  45.             ["Februarias","Kalendas","ante diem IV Nonas","ante diem III Nonas","pridie Nonas","Nonas","ante diem VIII Idus","ante diem VII Idus","ante diem VI Idus","ante diem V Idus","ante diem IV Idus","ante diem III Idus","ante diem II Idus","Idus","ante diem XVI Kalendas","ante diem XV Kalendas","ante diem XIV Kalendas","ante diem XIII Kalendas","ante diem XII Kalendas","ante diem XI Kalendas","ante diem X Kalendas","ante diem IX Kalendas","ante diem VIII Kalendas","ante diem VII Kalendas","ante diem bis VI Kalendas","ante diem VI Kalendas","ante diem V Kalendas","ante diem IV Kalendas","ante diem III Kalendas","pridie Kalendas"]
  46.         ];
  47.         var m = mensibus[diem.getMonth()==1&&diem.getFullYear()%4==0?13:diem.getMonth()];
  48.         var m2 = mensibus[m[diem.getDate()].indexOf(" Kal")==-1?diem.getMonth():diem.getMonth()+1];
  49.         return m[diem.getDate()]+" "+m2[0]+" anno "+romanize(diem.getFullYear()+(diem.getMonth()<3||diem.getMonth()==3&&diem.getDate()<21? 752:753))+" Ab Vrbe Condita";
  50.     }
Add Comment
Please, Sign In to add comment