Skip to content

Instantly share code, notes, and snippets.

@Pyeroh
Last active August 29, 2015 14:04
Show Gist options
  • Save Pyeroh/6651b5adf35e8330a35a to your computer and use it in GitHub Desktop.
Save Pyeroh/6651b5adf35e8330a35a to your computer and use it in GitHub Desktop.
var number;
var chaineFinale;
var numberList = {
0: 'zéro',
1: 'un',
2: 'deux',
3: 'trois',
4: 'quatre',
5: 'cinq',
6: 'six',
7: 'sept',
8: 'huit',
9: 'neuf',
10: 'dix',
11: 'onze',
12: 'douze',
13: 'treize',
14: 'quatorze',
15: 'quinze',
16: 'seize',
20: 'vingt',
30: 'trente',
40: 'quarante',
50: 'cinquante',
60: 'soixante',
80: 'quatre-vingt',
100: 'cent'
};
while (!(number = prompt("Saisissez un nombre compris entre 0 et 999")) || (number < 0 && number > 999)) {}
number = parseInt(number, 10);
var fullNumber = (function (num) {
var splittedNumber = {
unite: 0,
dizaine: 0,
centaine: 0
};
var letterNumber = {
unite: '',
dizaine: '',
centaine: ''
};
if (typeof num != 'number' || isNaN(num)) {
return splittedNumber;
}
splittedNumber.unite = num % 10;
num = (num - splittedNumber.unite) / 10;
splittedNumber.dizaine = num % 10;
num = (num - splittedNumber.dizaine) / 10;
splittedNumber.centaine = num;
switch (splittedNumber.centaine) {
case 0:
break;
case 1:
letterNumber.centaine = numberList[100];
break;
default:
letterNumber.centaine = numberList[splittedNumber.centaine] + '-' + numberList[100];
break;
}
if ((splittedNumber.dizaine == 1 || splittedNumber.dizaine == 7 || splittedNumber.dizaine == 9) && splittedNumber.unite < 7) {
var sup = splittedNumber.dizaine * 10 + splittedNumber.unite;
if (splittedNumber.dizaine != 1) {
var minus = (splittedNumber.dizaine - 1) * 10
letterNumber.dizaine = numberList[minus];
sup -= minus;
}
if (splittedNumber.dizaine == 7 && splittedNumber.unite == 1) {
letterNumber.unite = 'et-';
}
letterNumber.unite += numberList[sup];
}
else {
switch (splittedNumber.dizaine) {
case 0:
break;
case 7:
case 9:
letterNumber.dizaine = numberList[(splittedNumber.dizaine - 1) * 10] + '-' + numberList[10];
break;
default:
letterNumber.dizaine = numberList[splittedNumber.dizaine * 10];
break;
}
switch (splittedNumber.unite) {
case 0:
if (splittedNumber.dizaine == 8) {
letterNumber.dizaine += 's';
}
break;
case 1:
if (splittedNumber.dizaine != 0 && splittedNumber.dizaine < 8) {
letterNumber.unite = 'et-';
}
default:
letterNumber.unite += numberList[splittedNumber.unite];
break;
}
if (splittedNumber.centaine > 1 && splittedNumber.dizaine == 0 && splittedNumber.unite == 0) {
letterNumber.centaine += 's';
}
}
return letterNumber;
})(number);
var numberArray = [];
if (fullNumber.centaine) {
numberArray.push(fullNumber.centaine);
}
if (fullNumber.dizaine) {
numberArray.push(fullNumber.dizaine);
}
if (fullNumber.unite) {
numberArray.push(fullNumber.unite);
}
if (numberArray.length == 0) {
numberArray.push(numberList[0]);
}
alert(numberArray.join('-'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment