using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace GDZZ.Application.Help { public static class Utils { //自定义进制(0、O没有加入,容易混淆;同时排除X,用X补位) private static char[] r = new char[] { 'Q', 'W', 'E', '8', 'A', 'S', '2', 'D', 'Z', '9', 'C', '7', 'P', '5', 'I', 'K', '3', 'M', 'J', 'U', 'F', 'R', '4', 'V', 'Y', 'L', 'T', 'N', '6', 'B', 'G', 'H' }; //不能与自定义进制有重复 private static char b = 'X'; //进制长度 private static int binLen = r.Length; //生成的邀请码长度 private static int length = 6; static Random random = new Random(); /// /// /// /// /// public static bool ShowHelp(DateTime date) { bool isTheDay = false; //判断日期是否是当天 DateTime time = DateTime.Now;//当天 DateTime time2 = new DateTime(time.Year, time.Month, time.Day);//当天的零时零分 DateTime time3 = time.AddDays(1);//后一天 DateTime time4 = new DateTime(time3.Year, time3.Month, time3.Day);//后一天的零时零分 if (date > time2 && date < time4) { isTheDay = true; } else { isTheDay = false; } return isTheDay; } /// /// 根据ID生成六位随机邀请码 /// /// 用户id /// 返回6位邀请码 public static string Encode(long id) { char[] buf = new char[32]; int charPos = 32; while ((id / binLen) > 0) { int ind = (int)(id % binLen); buf[--charPos] = r[ind]; id /= binLen; } buf[--charPos] = r[(int)(id % binLen)]; String str = new String(buf, charPos, (32 - charPos)); //不够长度的自动随机补全 if (str.Length < length) { StringBuilder sb = new StringBuilder(); sb.Append(b); Random rnd = new Random(); for (int i = 1; i < length - str.Length; i++) { sb.Append(r[rnd.Next(binLen)]); } str += sb.ToString(); } return str; } public static long NextLong(long minValue, long maxValue) { byte[] buffer = new byte[8]; random.NextBytes(buffer); long result = BitConverter.ToInt64(buffer, 0); return (Math.Abs(result % (maxValue - minValue)) + minValue); } public static string stringToUnicode(string s) { if (!containsEmoji(s)) return s; string str = ""; for (int i = 0; i < s.Length; i++) { int ch = (int)s[i]; if (ch > 255) { str += "\\u" + String.Format("{0:X}", ch); } else { str += s[i].ToString(); } } return str; } public static bool containsEmoji(String str) { int len = str.Length; for (int i = 0; i < len; i++) { if (isEmojiCharacter(str[i])) { return true; } } return false; } public static bool isEmojiCharacter(char codePoint) { return !((codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) || (codePoint == 0xD) || ((codePoint >= 0x20) && (codePoint <= 0xD7FF)) || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF))); } } }