UNPKG

calvados-fonctions

Version:

Librairie de fonctions réutilisables

69 lines (60 loc) • 1.95 kB
"use strict"; var getTextualDay = function(day) { var days = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]; return days[day]; }; var getTextualMonth = function(month) { var months = ["janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "decembre"]; return months[month]; }; var groupBy = function(xs,key) { return xs.reduce(function(rv, x) { (rv[x[key]] = rv[x[key]] || []).push(x); return rv; }, {}); }; var dateFr = function (date, format) { var dateArray = new Date(date).toISOString().slice(0,10).split("-"); var annee = dateArray[0]; var mois = dateArray[1]; var jour = dateArray[2]; switch(format) { case "JJ-MM-AAAA": return jour+"-"+mois+"-"+annee; case "JJ/MM/AAAA": return jour+"/"+mois+"/"+annee; case "chaine": return jour + " " + getTextualMonth(mois-1) + " " + annee; default: return jour+"/"+mois+"/"+annee; } }; var mod = function(s,x) { var checksum = s.slice(0, 2), fragment; for (var offset = 2; offset < s.length; offset += 7) { fragment = String(checksum) + s.substring(offset, offset + 7); checksum = parseInt(fragment, 10) % x; } return checksum; }; var checkIBAN = function(iban) { var s = ""; var b = iban.toUpperCase(); var ib = b.substr(4) + b.substr(0,4); for (var i = 0; i < ib.length; i++) { if(ib.charAt(i).length === 1 && ib.charAt(i).match(/[a-z]/i)) s += ib.charCodeAt(i)-55; else s += ib.charAt(i); } return mod(s,97) === 1; }; var fn = { getTextualDay: getTextualDay, getTextualMonth: getTextualMonth, groupBy: groupBy, dateFr: dateFr, mod: mod, checkIBAN: checkIBAN }; module.exports = fn;