3 @author: Sudheer K. <scifi1947 at gmail.com>
4 @license: GNU General Public License
7 function isTodayAWeekDay(){
8 var dayOfWeek = (new Date()).getDay();
9 var isWeekDay = (dayOfWeek === 0 || dayOfWeek === 6)? false : true;
16 * Enforce a specific amount of decimal digits and also fix floating
17 * point rounding issues.
18 * @example `enforcePrecision(0.615, 2) -> 0.62`, `(0.615).toFixed(2) ->
21 function enforcePrecision(val, nDecimalDigits){
22 var pow = Math.pow(10, nDecimalDigits);
23 return +(Math.round(val * pow) / pow).toFixed(nDecimalDigits);
34 * Abbreviate number if bigger than 1000. (eg: 2.5K, 17.5M, 3.4B, ...)
36 function abbreviateNumber(val, nDecimals, dict){
37 nDecimals = nDecimals !== null? nDecimals : 1;
38 dict = dict || _defaultDict;
39 val = enforcePrecision(val, nDecimals);
45 } else if (val < 1000000) {
46 mod = enforcePrecision(val / 1000, nDecimals);
47 // might overflow to next scale during rounding
48 str = mod < 1000? mod + dict.thousand : 1 + dict.million;
49 } else if (val < 1000000000) {
50 mod = enforcePrecision(val / 1000000, nDecimals);
51 str = mod < 1000? mod + dict.million : 1 + dict.billion;
53 str = enforcePrecision(val / 1000000000, nDecimals) + dict.billion;