| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- export class FsUtils {
- private static unit = ["K", "M", "B", "T",
- "aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh",
- "ii", "jj", "kk", "ll", "mm", "nn", "oo", "pp",
- "qq", "rr", "ss", "tt", "uu", "vv", "ww",
- "xx", "yy", "zz",
- "AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH",
- "II", "JJ", "KK", "LL", "MM", "NN", "OO", "PP",
- "QQ", "RR", "SS", "TT", "UU", "VV", "WW",
- "XX", "YY", "ZZ"
- ];
- /**
- * 金币格式化
- * @param num
- */
- public static moneyFormat(num: number) {
- if (num < 1000) {
- return num + '';
- }
- let newNumStr = this.formateHugeNumberToString(num);
- let result = "";
- let n = newNumStr.match(/^\d+(?:\.\d{0,2})?/);
- let numStr = n.toString();
- let len = numStr.length;
- let dec = len % 3;
- let times = (len - dec) / 3;
- let inx = times - 1;
- if (dec === 0) {
- times--;
- inx--;
- }
- let dot = len - times * 3;
- result = numStr.slice(0, dot) + "." + numStr.slice(dot, dot + 2) + this.unit[inx];
- return result;
- }
- /**
- * 神石数值格式化
- * @param num
- */
- public static goldFormat(num: number) {
- if (num < 100000) {
- return num + '';
- }
- let newNumStr = this.formateHugeNumberToString(num);
- let result = "";
- let n = newNumStr.match(/^\d+(?:\.\d{0,2})?/);
- let numStr = n.toString();
- let len = numStr.length;
- let dec = len % 3;
- let times = (len - dec) / 3;
- let inx = times - 1;
- if (dec === 0) {
- times--;
- inx--;
- }
- let dot = len - times * 3;
- result = numStr.slice(0, dot) + "." + numStr.slice(dot, dot + 2) + this.unit[inx];
- return result;
- }
- /**
- * 把巨大的数字变成string
- */
- public static formateHugeNumberToString(value: number): string {
- let power10 = 0;
- while (value > Math.pow(10, 18)) {
- power10 += 10;
- value = Math.floor(value / Math.pow(10, 10));
- }
- let valueStr = value + "";
- for (let i = 0; i < power10; i++) {
- valueStr += "0";
- }
- return valueStr;
- }
- /**
- * 将数值保留2位小数后格式化成金额形式
- * @param num 数值(Number或者String)
- * @type {String}
- */
- public static formatCurrency(num: any, length: number = 2): string {
- num = parseFloat(num);
- var result;
- if (num < 10000) {
- result = this.toFixed(num, 0);
- }
- else if (num < 100000000) {
- var n = num / 10000;
- result = this.isInteger(n) ? n.toString() + "万" : this.toFixed(n, length) + "万";
- }
- else if (num < 1000000000000) {
- var n = num / 100000000;
- result = this.isInteger(n) ? n.toString() + "亿" : this.toFixed(n, length) + "亿";
- }
- else {
- var n = num / 1000000000000;
- result = this.isInteger(n) ? n.toString() + "兆" : this.toFixed(n, length) + "兆";
- }
- return result;
- }
- /**
- * 没有四舍五入的fix方法
- */
- public static toFixed(value: any, length: number): string {
- value = value.toString();
- var pointIndex = value.lastIndexOf(".");
- if (pointIndex == -1) {
- return value;
- }
- if (length > 0) {
- return value.substring(0, pointIndex + length + 1);
- }
- else {
- return value.substring(0, pointIndex + length);
- }
- }
- /**
- * 判断是否是整型
- */
- public static isInteger(x: number): boolean {
- return x % 1 === 0;
- }
- /**
- * 时间格式
- */
- public static dateFormat(time: number): string {
- let dt = new Date(time);
- let y = dt.getFullYear();
- let _m = dt.getMonth() + 1;
- let m = _m < 10 ? "0" + _m : _m;
- let _d = dt.getDate();
- let d = _d < 10 ? "0" + _d : _d;
- let _h = dt.getHours();
- let h = _h < 10 ? "0" + _h : _h;
- let _minutes = dt.getMinutes();
- let minutes = _minutes < 10 ? "0" + _minutes : _minutes;
- let _s = dt.getSeconds();
- let s = _s < 10 ? "0" + _s : _s;
- return y + "年" + m + "月" + d + "日" + " " + h + "时" + minutes + "分" + s + "秒";
- }
- /**金币计算 */
- public static formateHugeNumber(value: number): { value: number, power10: number } {
- let power10 = 0;
- while (value > Math.pow(10, 18)) {
- power10 += 10;
- value = Math.floor(value / Math.pow(10, 10));
- }
- return { value: value, power10: power10 };
- }
- /**超长名字格式化 */
- public static beautySub(str, len) {
- var reg = /[\u4e00-\u9fa5]/g, //专业匹配中文
- slice = str.substring(0, len),
- chineseCharNum = (~~(slice.match(reg) && slice.match(reg).length)),
- realen = slice.length * 2 - chineseCharNum;
- return str.substr(0, realen) + (realen < str.length ? "..." : "");
- }
- /**
- * 今日的0点秒数
- */
- public static getTodayTime() {
- var date = new Date();
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTime() / 1000;
- }
- /**
- * 格式化倒计时
- */
- public static formatBattleTime(time: number): string {
- let day = Math.floor(time / 3600 / 24);
- let h = Math.floor(time / 3600 % 24) < 10 ? Math.floor(time / 3600 % 24) : Math.floor(time / 3600 % 24);
- let m = Math.floor(time / 60 % 60) < 10 ? Math.floor(time / 60 % 60) : Math.floor(time / 60 % 60);
- let s = Math.floor(time % 60) < 10 ? Math.floor(time % 60) : Math.floor(time % 60);
- let result = "";
- if (day > 0) {
- result = day + "天" + h + "时" + m + "分" + s + "秒";
- } else if (h > 0) {
- result = h + "时" + m + "分" + s + "秒";
- } else if (m > 0) {
- result = m + "分" + s + "秒";
- } else {
- result = s + "秒";
- }
- return result;
- }
- }
|