Gebruiker:MakiBoy/Gadget-Jaartelling.js: verschil tussen versies
Naar navigatie springen
Naar zoeken springen
(Nieuwe pagina aangemaakt met '// Gadget-Jaartelling') |
|||
(30 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
− | // Gadget-Jaartelling | + | /** |
+ | * Gebruiker:MakiBoy/Gadget-Jaartelling.js | ||
+ | * Translated by [[User:MakiBoy]] from Wikipedia's [[Module:Kalender]] | ||
+ | */ | ||
+ | |||
+ | function linkToArticle(title, label) { | ||
+ | if (!label) { | ||
+ | return '<a href="/' + title + '">' + title + '</a>'; | ||
+ | } else { | ||
+ | return '<a href="/' + title + '">' + label + '</a>'; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function duo(year, offset) { | ||
+ | if (year > offset) { | ||
+ | return (year - offset) + ' - ' + (year - offset + 1); | ||
+ | } else if (year == offset) { | ||
+ | return 1; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function nonPositionalDigit(tab, year, div) { | ||
+ | if (year < div) { | ||
+ | return ''; | ||
+ | } | ||
+ | |||
+ | var digit = Math.floor(year / div) % (tab.length + 1); | ||
+ | return tab[digit - 1] || ''; | ||
+ | } | ||
+ | |||
+ | function years(year) { | ||
+ | var yearNum = parseInt(year); | ||
+ | if (yearNum > 0) { | ||
+ | return linkToArticle(yearNum - 1) + " - " + linkToArticle(yearNum) + " - " + linkToArticle(yearNum + 1); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | var roman4 = ['M', 'MM', 'MMM', 'MMMM']; | ||
+ | var roman3 = ['C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM']; | ||
+ | var roman2 = ['X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC']; | ||
+ | var roman1 = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX']; | ||
+ | |||
+ | function romanNumeral(year) { | ||
+ | if (year > 0 && year < 5000) { | ||
+ | return nonPositionalDigit(roman4, year, 1000) + | ||
+ | nonPositionalDigit(roman3, year, 100) + | ||
+ | nonPositionalDigit(roman2, year, 10) + | ||
+ | nonPositionalDigit(roman1, year, 1); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | var cn10 = ['庚', '辛', '壬', '癸', '甲', '乙', '丙', '丁', '戊', '己']; | ||
+ | var cn12 = ['亥', '子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌']; | ||
+ | |||
+ | function chineseNumeral(year) { | ||
+ | year = year + 2696; | ||
+ | var year1 = year + ' - ' + (year + 1); | ||
+ | var year2 = cn10[year % 10] + cn12[year % 12] + ' - ' + cn10[(year + 1) % 10] + cn12[(year + 1) % 12]; | ||
+ | return year1 + "<br />" + year2; | ||
+ | } | ||
+ | |||
+ | var ar5 = ['Օ', 'Ֆ']; | ||
+ | var ar4 = ['Ռ', 'Ս', 'Վ', 'Տ', 'Ր', 'Ց', 'Ւ', 'Փ', 'Ք']; | ||
+ | var ar3 = ['Ճ', 'Մ', 'Յ', 'Ն', 'Շ', 'Ո', 'Չ', 'Պ', 'Ջ']; | ||
+ | var ar2 = ['Ժ', 'Ի', 'Լ', 'Խ', 'Ծ', 'Կ', 'Հ', 'Ձ', 'Ղ']; | ||
+ | var ar1 = ['Ա', 'Բ', 'Գ', 'Դ', 'Ե', 'Զ', 'Է', 'Ը', 'Թ']; | ||
+ | |||
+ | function ak(year) { | ||
+ | if (year > 0 && year < 30000) { | ||
+ | return nonPositionalDigit(ar5, year, 10000) + | ||
+ | nonPositionalDigit(ar4, year, 1000) + | ||
+ | nonPositionalDigit(ar3, year, 100) + | ||
+ | nonPositionalDigit(ar2, year, 10) + | ||
+ | nonPositionalDigit(ar1, year, 1); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function armenianNumeral(year) { | ||
+ | var year1 = Math.floor((Math.floor(year * 0.25 - 0.25) - Math.floor(year * 0.01 - 0.01) + Math.floor(year * 0.0025 - 0.0025)) / 365 + year - 551.8958904); | ||
+ | var year2 = Math.floor((Math.floor(year * 0.25) - Math.floor(year * 0.01) + Math.floor(year * 0.0025)) / 365 + year - 550.8986301); | ||
+ | if (year1 > 0 && year1 != year2) { | ||
+ | return year1 + ' - ' + year2 + "<br />ԹՎ " + ak(year1) + ' - ' + ak(year2); | ||
+ | } else if (year1 > 0) { | ||
+ | return year1 + " ԹՎ " + ak(year1); | ||
+ | } else if (year1 == 0) { | ||
+ | return year2 + " ԹՎ " + ak(year2); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function ethiopianNumeral(year) { | ||
+ | return duo(year, 8); | ||
+ | } | ||
+ | |||
+ | function hebrewNumeral(year) { | ||
+ | return duo(year, -3760); | ||
+ | } | ||
+ | |||
+ | function indiNumeral(year) { | ||
+ | return duo(year, 78); | ||
+ | } | ||
+ | |||
+ | function islamicNumeral(year) { | ||
+ | var year1 = Math.floor(1.030684 * (year - 621.5643)); | ||
+ | var year2 = Math.floor(1.030684 * (year - 621.5643 + 1)); | ||
+ | |||
+ | if (year > 622) { | ||
+ | return year1 + ' - ' + year2; | ||
+ | } else if (year == 622) { | ||
+ | return 1; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if (mw.config.get('wgPageName').match(/^\d+$/) || mw.config.get('wgPageName') == 'Gebruiker:MakiBoy/Kladblok') { | ||
+ | console.log('Gadget-Jaartelling is running'); | ||
+ | |||
+ | if (mw.config.get('wgPageName') == 'Gebruiker:MakiBoy/Kladblok') { | ||
+ | var year = new Date().getFullYear(); | ||
+ | } else { | ||
+ | var year = mw.config.get('wgPageName'); | ||
+ | } | ||
+ | |||
+ | document.getElementById('Gadget-Jaartelling-year').innerHTML = year; | ||
+ | |||
+ | var allIds = [ | ||
+ | { id: 'years', function: years }, | ||
+ | { id: 'romanNumeral', function: romanNumeral }, | ||
+ | { id: 'chineseNumeral', function: chineseNumeral }, | ||
+ | { id: 'armenianNumeral', function: armenianNumeral }, | ||
+ | { id: 'ethiopianNumeral', function: ethiopianNumeral }, | ||
+ | { id: 'hebrewNumeral', function: hebrewNumeral }, | ||
+ | { id: 'indiNumeral', function: indiNumeral }, | ||
+ | { id: 'islamicNumeral', function: islamicNumeral } | ||
+ | ]; | ||
+ | |||
+ | for (var i = 0; i < allIds.length; i++) { | ||
+ | var id = 'Gadget-Jaartelling-' + allIds[i].id; | ||
+ | var element = document.getElementById(id); | ||
+ | if (element) { | ||
+ | var result = allIds[i].function(year); | ||
+ | element.innerHTML = result; | ||
+ | } | ||
+ | } | ||
+ | } |
Huidige versie van 27 jan 2023 om 12:21
/**
* Gebruiker:MakiBoy/Gadget-Jaartelling.js
* Translated by [[User:MakiBoy]] from Wikipedia's [[Module:Kalender]]
*/
function linkToArticle(title, label) {
if (!label) {
return '<a href="/' + title + '">' + title + '</a>';
} else {
return '<a href="/' + title + '">' + label + '</a>';
}
}
function duo(year, offset) {
if (year > offset) {
return (year - offset) + ' - ' + (year - offset + 1);
} else if (year == offset) {
return 1;
}
}
function nonPositionalDigit(tab, year, div) {
if (year < div) {
return '';
}
var digit = Math.floor(year / div) % (tab.length + 1);
return tab[digit - 1] || '';
}
function years(year) {
var yearNum = parseInt(year);
if (yearNum > 0) {
return linkToArticle(yearNum - 1) + " - " + linkToArticle(yearNum) + " - " + linkToArticle(yearNum + 1);
}
}
var roman4 = ['M', 'MM', 'MMM', 'MMMM'];
var roman3 = ['C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'];
var roman2 = ['X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'];
var roman1 = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
function romanNumeral(year) {
if (year > 0 && year < 5000) {
return nonPositionalDigit(roman4, year, 1000) +
nonPositionalDigit(roman3, year, 100) +
nonPositionalDigit(roman2, year, 10) +
nonPositionalDigit(roman1, year, 1);
}
}
var cn10 = ['庚', '辛', '壬', '癸', '甲', '乙', '丙', '丁', '戊', '己'];
var cn12 = ['亥', '子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌'];
function chineseNumeral(year) {
year = year + 2696;
var year1 = year + ' - ' + (year + 1);
var year2 = cn10[year % 10] + cn12[year % 12] + ' - ' + cn10[(year + 1) % 10] + cn12[(year + 1) % 12];
return year1 + "<br />" + year2;
}
var ar5 = ['Օ', 'Ֆ'];
var ar4 = ['Ռ', 'Ս', 'Վ', 'Տ', 'Ր', 'Ց', 'Ւ', 'Փ', 'Ք'];
var ar3 = ['Ճ', 'Մ', 'Յ', 'Ն', 'Շ', 'Ո', 'Չ', 'Պ', 'Ջ'];
var ar2 = ['Ժ', 'Ի', 'Լ', 'Խ', 'Ծ', 'Կ', 'Հ', 'Ձ', 'Ղ'];
var ar1 = ['Ա', 'Բ', 'Գ', 'Դ', 'Ե', 'Զ', 'Է', 'Ը', 'Թ'];
function ak(year) {
if (year > 0 && year < 30000) {
return nonPositionalDigit(ar5, year, 10000) +
nonPositionalDigit(ar4, year, 1000) +
nonPositionalDigit(ar3, year, 100) +
nonPositionalDigit(ar2, year, 10) +
nonPositionalDigit(ar1, year, 1);
}
}
function armenianNumeral(year) {
var year1 = Math.floor((Math.floor(year * 0.25 - 0.25) - Math.floor(year * 0.01 - 0.01) + Math.floor(year * 0.0025 - 0.0025)) / 365 + year - 551.8958904);
var year2 = Math.floor((Math.floor(year * 0.25) - Math.floor(year * 0.01) + Math.floor(year * 0.0025)) / 365 + year - 550.8986301);
if (year1 > 0 && year1 != year2) {
return year1 + ' - ' + year2 + "<br />ԹՎ " + ak(year1) + ' - ' + ak(year2);
} else if (year1 > 0) {
return year1 + " ԹՎ " + ak(year1);
} else if (year1 == 0) {
return year2 + " ԹՎ " + ak(year2);
}
}
function ethiopianNumeral(year) {
return duo(year, 8);
}
function hebrewNumeral(year) {
return duo(year, -3760);
}
function indiNumeral(year) {
return duo(year, 78);
}
function islamicNumeral(year) {
var year1 = Math.floor(1.030684 * (year - 621.5643));
var year2 = Math.floor(1.030684 * (year - 621.5643 + 1));
if (year > 622) {
return year1 + ' - ' + year2;
} else if (year == 622) {
return 1;
}
}
if (mw.config.get('wgPageName').match(/^\d+$/) || mw.config.get('wgPageName') == 'Gebruiker:MakiBoy/Kladblok') {
console.log('Gadget-Jaartelling is running');
if (mw.config.get('wgPageName') == 'Gebruiker:MakiBoy/Kladblok') {
var year = new Date().getFullYear();
} else {
var year = mw.config.get('wgPageName');
}
document.getElementById('Gadget-Jaartelling-year').innerHTML = year;
var allIds = [
{ id: 'years', function: years },
{ id: 'romanNumeral', function: romanNumeral },
{ id: 'chineseNumeral', function: chineseNumeral },
{ id: 'armenianNumeral', function: armenianNumeral },
{ id: 'ethiopianNumeral', function: ethiopianNumeral },
{ id: 'hebrewNumeral', function: hebrewNumeral },
{ id: 'indiNumeral', function: indiNumeral },
{ id: 'islamicNumeral', function: islamicNumeral }
];
for (var i = 0; i < allIds.length; i++) {
var id = 'Gadget-Jaartelling-' + allIds[i].id;
var element = document.getElementById(id);
if (element) {
var result = allIds[i].function(year);
element.innerHTML = result;
}
}
}