34658dd649d651f32ca65cf8f93206c3f19a5bfd.js 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. System.register(["cc"], function (_export, _context) {
  2. "use strict";
  3. var _cclegacy, Utils, _crd;
  4. _export("Utils", void 0);
  5. return {
  6. setters: [function (_cc) {
  7. _cclegacy = _cc.cclegacy;
  8. }],
  9. execute: function () {
  10. _crd = true;
  11. _cclegacy._RF.push({}, "7ea66r0AApIFbjuTFjXJIWh", "Utils", undefined);
  12. _export("Utils", Utils = class Utils {
  13. /**
  14. * 随机数 (包含min,不包含max)
  15. * @param min
  16. * @param max
  17. * @param isInt
  18. * @return {*}
  19. */
  20. static getRandom(min, max, isInt) {
  21. if (min === void 0) {
  22. min = 0;
  23. }
  24. if (max === void 0) {
  25. max = 1;
  26. }
  27. if (isInt === void 0) {
  28. isInt = false;
  29. }
  30. if (min == null) min = 0;
  31. if (max == null) max = 1;
  32. if (isInt == null) isInt = false;
  33. if (min === max) return min;
  34. var value = min + Math.random() * (max - min);
  35. if (isInt) {
  36. value = Math.floor(value);
  37. }
  38. return value;
  39. }
  40. /**
  41. * 随机整数-包含最大值,最小值
  42. * @param min
  43. * @param max
  44. * @return {*}
  45. */
  46. static getRandomIntInclusive(min, max) {
  47. min = Math.ceil(min);
  48. max = Math.floor(max);
  49. if (min == max) return min;
  50. return Math.floor(Math.random() * (max - min + 1)) + min; //The maximum is inclusive and the minimum is inclusive
  51. }
  52. /**
  53. * 随机整数-不包含最大值,最小值
  54. * @param min
  55. * @param max
  56. * @return {*}
  57. */
  58. static getRandomInt(min, max) {
  59. min = Math.ceil(min);
  60. max = Math.ceil(max);
  61. return Math.floor(Math.random() * (max - min)) + min;
  62. }
  63. /** */
  64. static getRandomNumberInRange(min, max) {
  65. return Math.random() * (max - min) + min;
  66. }
  67. /**生成随机整数 -1 或 1*/
  68. static getRandomDir() {
  69. return Math.floor(Math.random() * 2) === 0 ? -1 : 1; //
  70. }
  71. /**
  72. * 在指定数组中随机取出N个不重复的数据
  73. * @param resArr
  74. * @param ranNum
  75. * @returns {Array}
  76. */
  77. static getRandomDiffValueFromArr(resArr, ranNum) {
  78. var arr = new Array();
  79. var result = new Array();
  80. if (!resArr || resArr.length <= 0 || ranNum <= 0) {
  81. return result;
  82. }
  83. for (var i = 0; i < resArr.length; i++) {
  84. arr.push(resArr[i]);
  85. }
  86. if (ranNum >= arr.length) {
  87. return arr;
  88. }
  89. ranNum = Math.min(ranNum, arr.length - 1);
  90. for (var _i = 0; _i < ranNum; _i++) {
  91. var ran = Utils.getRandomIntInclusive(0, arr.length - 1); // Math.floor(Math.random() * arr.length);
  92. result.push(arr.splice(ran, 1)[0]);
  93. }
  94. return result;
  95. }
  96. /**
  97. * 随机一个字符串
  98. * @param length
  99. * @returns
  100. */
  101. static randomStr(length) {
  102. var result = '';
  103. var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  104. var charactersLength = characters.length;
  105. for (var i = 0; i < length; i++) {
  106. result += characters.charAt(Math.floor(Math.random() * charactersLength));
  107. }
  108. return result;
  109. }
  110. /**
  111. * 时间转换 毫秒=》2019-03-28 19:55:34
  112. * @param milliseconds
  113. * @return {string}
  114. */
  115. static time2str(milliseconds) {
  116. var time = new Date();
  117. time.setTime(milliseconds);
  118. var year = time.getFullYear();
  119. var hours = time.getHours();
  120. var min = time.getMinutes();
  121. var sec = time.getSeconds();
  122. var month = time.getMonth() + 1;
  123. var date = time.getDate();
  124. return year + "-" + month + "-" + date + " " + (hours > 9 ? hours : "0" + hours) + ":" + (min > 9 ? min : "0" + min) + ":" + (sec > 9 ? sec : "0" + sec);
  125. }
  126. /**
  127. * 将毫秒转换为时间格式 00:00:00
  128. * @param delay
  129. * @param detail
  130. * @return
  131. */
  132. static second2time(delay, detail) {
  133. if (detail === void 0) {
  134. detail = 2;
  135. }
  136. // if (detail == undefined) detail = 2;
  137. //天
  138. var d = Math.floor(delay / 86400000);
  139. delay = delay % 86400000; // 小时
  140. var h = Math.floor(delay / 3600000);
  141. delay = delay % 3600000; // 分钟
  142. var m = Math.floor(delay / 60000);
  143. delay = delay % 60000; // 秒
  144. var s = Math.floor(delay / 1000);
  145. delay = delay % 1000; // 毫秒
  146. var ml = delay;
  147. var result = "";
  148. if (d > 0 && detail > 0) {
  149. result += (d > 9 ? d : "0" + d) + ":"; // "天";
  150. detail--;
  151. }
  152. if (h > 0 && detail > 0) {
  153. result += (h > 9 ? h : "0" + h) + ":"; // "小时";
  154. detail--;
  155. }
  156. if (m > 0 && detail > 0) {
  157. result += (m > 9 ? m : "0" + m) + ":"; // "分钟";
  158. detail--;
  159. }
  160. if (detail > 0) {
  161. result += s > 9 ? s : "0" + s; // "秒";
  162. detail--;
  163. }
  164. if (ml > 0 && detail > 0) {
  165. detail--;
  166. }
  167. return result;
  168. }
  169. static formatMilliseconds(milliseconds) {
  170. var seconds = Math.floor(milliseconds / 1000 % 60);
  171. var minutes = Math.floor(milliseconds / (1000 * 60) % 60);
  172. var hours = Math.floor(milliseconds / (1000 * 60 * 60) % 24); //const formattedSeconds = seconds < 10 ? "0" + seconds : seconds;
  173. //const formattedMinutes = minutes < 10 ? "0" + minutes : minutes;
  174. //const formattedHours = hours < 10 ? "0" + hours : hours;
  175. //`${formattedHours}:${formattedMinutes}:${formattedSeconds}`;
  176. return hours.toString().padStart(2, "0") + ":" + minutes.toString().padStart(2, "0") + ":" + seconds.toString().padStart(2, "0");
  177. }
  178. /**
  179. * 取小数位
  180. * @param decimal 小数
  181. * @param places 位数
  182. * @return {number}
  183. */
  184. static getDecimal(decimal, places) {
  185. var round = Math.pow(10, places);
  186. return Math.round(decimal * round) / round;
  187. }
  188. /**
  189. * 本年第几周
  190. * @param timestamp 毫秒
  191. * @returns
  192. */
  193. static getYearWeek(timestamp) {
  194. // let nowDate: Date = new Date(date);
  195. // let firstDay: Date = new Date(date);
  196. // firstDay.setMonth(0);//设置1月
  197. // firstDay.setDate(1);//设置1号
  198. // let diffDays = Math.ceil((nowDate.valueOf() - firstDay.valueOf())/(24*60*60*1000));
  199. // return Math.ceil((diffDays + (firstDay.getDay() + 1 - 1)) / 7);
  200. var currentDate = new Date(timestamp);
  201. var year = new Date(currentDate.getFullYear(), 0, 1);
  202. var days = Math.floor((currentDate.valueOf() - year.valueOf()) / (24 * 60 * 60 * 1000));
  203. var week = Math.ceil((currentDate.getDay() + 1 + days) / 7);
  204. return week;
  205. }
  206. /**
  207. * 是否是同一天
  208. * @param timeStampA
  209. * @param timeStampB
  210. * @return {boolean}
  211. */
  212. static isSameDay(timeStampA, timeStampB) {
  213. var dateA = new Date(timeStampA);
  214. dateA.setHours(0, 0, 0, 0);
  215. var dateB = new Date(timeStampB);
  216. dateB.setHours(0, 0, 0, 0);
  217. return dateA.getTime() == dateB.getTime() ? true : false;
  218. } //
  219. static checkAndAdd(map, k, v) {
  220. if (map.has(k)) {
  221. map.set(k, map.get(k) + v);
  222. } else {
  223. map.set(k, v);
  224. }
  225. } //
  226. /**
  227. * 随机权重下标
  228. * @param weights 权重数组
  229. */
  230. static randomWeights(weights) {
  231. // 总权重值
  232. var totalWeight = weights.reduce((a, b) => a + b, 0); // 随机的权重值
  233. var randomWeight = this.getRandom(0, totalWeight);
  234. for (var index = 0, weight = 0; index < weights.length; index++) {
  235. weight += weights[index];
  236. if (weight >= randomWeight) {
  237. return index;
  238. }
  239. }
  240. return -1;
  241. }
  242. /**
  243. * 随机数组下标
  244. * @param array 数组
  245. */
  246. /**
  247. * 根据权重随机数组下标
  248. * @param array 数组
  249. * @param weights 权重数组
  250. */
  251. static randomArray(array, weights) {
  252. if (!weights) {
  253. var index = this.getRandom(0, array.length, true);
  254. return index;
  255. }
  256. return this.randomWeights(weights.slice(0, array.length));
  257. }
  258. });
  259. _cclegacy._RF.pop();
  260. _crd = false;
  261. }
  262. };
  263. });
  264. //# sourceMappingURL=34658dd649d651f32ca65cf8f93206c3f19a5bfd.js.map