Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timelf123/8c460c81217a1683eded412b9c9f5d81 to your computer and use it in GitHub Desktop.
Save timelf123/8c460c81217a1683eded412b9c9f5d81 to your computer and use it in GitHub Desktop.
Calculate the an adidas size code by using real life sizes from different regions
function calculateSizeCode(size, type){
switch(type){
case 'USM':
return size * 20 + 530 - 80;
break;
case 'USF':
return size * 20 + 530 - 100;
break;
case 'UK':
return size * 20 + 530 - 70;
break;
case 'EU':
const calc = size * 15 + 530 - 36 * 15;
if(calc / 10 % 1 === 0){
return calc;
}
return ((calc + 0.5) / 10 % 1 !== 0 ? calc - 0.5 : calc + 0.5);
break;
}
}
function calculateSize(sizeCode, type){
switch(type){
case 'USM':
return 4 + (sizeCode - 530) / 20;
break;
case 'USF':
return 5 + (sizeCode - 530) / 20;
break;
case 'UK':
return 3.5 + (sizeCode - 530) / 20;
break;
case 'EU':
return Math.round((36 + (sizeCode - 530) * 2 / 30) * 10) / 10;
break;
}
}
/* example: calculateSizeCode(11, 'USM') = 670
calculateSizeCode(39.3, 'EU') = 580
calculateSizeCode(40, 'EU') = 590
calculateSizeCode(44.7, 'EU') = 660
calculateSizeCode(10.5, 'UK') = 670
calculateSizeCode(39.5, 'EU') = 582 (not a valid size code, size 39.5 does not exist)
calculateSizeCode(10.2, 'UK') = 664 (not a valid size code, size 10.2 does not exist) */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment