Recettes pour Acte.js

Exemples d'utilisation de la librairie Acte.js

by toubia95

HTML

<script src="https://rawgit.com/gtoubiana/acte/master/dist/acte.min.js"></script>
<h1>Exemples d'utilisation de Acte.js</h1>
<div id="display"></div>

Babel + JSX

const display = document.getElementById('display');

// fonctions à rendre publiques (tous les filtres ? tout ce qui peut être utilisé dans les callback functions...)
acte.prefixeZero = (n) => {
   const result = n < 10 && n > 0 ? `0${n}` : n;

   return result;
};

acte.arabeVersRomain = (arabe) => {
  const lookup = {
    M: 1000,
    CM: 900,
    D: 500,
    CD: 400,
    C: 100,
    XC: 90,
    L: 50,
    XL: 40,
    X: 10,
    IX: 9,
    V: 5,
    IV: 4,
    I: 1,
  };
  let tempArabe = Math.abs(arabe);
  const sign = arabe < 0 ? '-' : '';
  let romain = '';
  let i;

  for (i in lookup) {
    /* istanbul ignore else  */
    if (lookup.hasOwnProperty(i)) {
      while (tempArabe >= lookup[i]) {
        romain += i;
        tempArabe -= lookup[i];
      }
    }
  }

  return sign + romain;
};

acte.nombreOrdinal = (n, prem, exp) => {
  const result = n === 1 || n === '1er' || n === '1re' ? `1${prem}` : n +
    exp;

  return result;
};

/* Exemple 1
 * 3 avril 1605 => 03/04/05
 */
const titre1 = 'Exemple 1 : Année sur 2 chiffres';
const date1 = '3 avril 1605';
const resultat1 = new acte.Jour(date1).gregorien('%Jz/%Mz', 0, (res, obj) => {
  return `${res}/${acte.prefixeZero(obj.A % 100)}`;
});
display.innerHTML += `<strong>${titre1}</strong><br>${date1} => ${resultat1}<br><br>`;

/* Exemple 2
 * 8 décembre 2016 => XXIe siècle
 */
const titre2 = 'Exemple 2 : Siècle';
const date2 = '8 décembre 2016';
const resultat2 = new acte.Jour(date2).gregorien('', 0, (res, obj) => {
  return `${acte.nombreOrdinal(acte.arabeVersRomain(parseInt(obj.A/100)+1),"er","e")}`;
});

display.innerHTML += `<strong>${titre2}</strong><br>${date2} => ${resultat2} siècle<br><br>`;

/* Exemple 3
 * 28/7/1910 => Vingt-huit juillet de l'an mil neuf cent dix
 */
const titre3 = 'Exemple 3 : Mil plutôt que Mille';
const date3 = '28/7/1910';
const resultat3 = new acte.Jour(date3).gregorien('%Jl %Mlb de l\'an %Avb', 0, (res, obj) => {
  return res.replace(/(M|m)(ille)(\s|-|$)/gm,...