• C# 常用公共类


    public class Utils
        {
            /// <summary>
            /// 生成随机字母字符串(数字字母混和)
            /// </summary>
            /// <param name="codeCount">待生成的位数</param>
            public static string GetCheckCode(int codeCount)
            {
                string str = string.Empty;
                int rep = 0;
                long num2 = DateTime.Now.Ticks + rep;
                rep++;
                Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> rep)));
                for (int i = 0; i < codeCount; i++)
                {
                    char ch;
                    int num = random.Next();
                    if ((num % 2) == 0)
                    {
                        ch = (char)(0x30 + ((ushort)(num % 10)));
                    }
                    else
                    {
                        ch = (char)(0x41 + ((ushort)(num % 0x1a)));
                    }
                    str = str + ch.ToString();
                }
                return str;
            }
    
            /// <summary>
            /// 将字符串转换为int类型数组
            /// </summary>
            /// <param name="str">如1,2,3,4,5</param>
            /// <returns></returns>
            public static List<int> StrToListInt(string str)
            {
                if (string.IsNullOrWhiteSpace(str))
                {
                    return null;
                }
                var list = new List<int>();
                if (!str.Contains(","))
                {
                    list.Add(int.Parse(str));
                    return list;
                }
                var slist = str.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var item in slist)
                {
                    list.Add(int.Parse(item));
                }
                return list;
            }
    
            /// <summary>
            /// 将字符串转换为int类型数组
            /// </summary>
            /// <param name="str">如1,2,3,4,5</param>
            /// <returns></returns>
            public static List<string> StrToListString(string str)
            {
                var list = new List<string>();
                if (!str.Contains(","))
                {
                    list.Add(str);
                    return list;
                }
                var slist = str.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var item in slist)
                {
                    list.Add(item);
                }
                return list;
            }
    
            /// <summary>
            /// 将字符串转换为数组
            /// </summary>
            /// <param name="str">字符串</param>
            /// <returns>字符串数组</returns>
            public static string[] GetStrArray(string str)
            {
                return str.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            }
            #region 截取字符串
            public static string GetSubString(string pSrcString, int pLength, string pTailString)
            {
                return GetSubString(pSrcString, 0, pLength, pTailString);
            }
            public static string GetSubString(string pSrcString, int pStartIndex, int pLength, string pTailString)
            {
                string str = pSrcString;
                byte[] bytes = Encoding.UTF8.GetBytes(pSrcString);
                foreach (char ch in Encoding.UTF8.GetChars(bytes))
                {
                    if (((ch > 'ࠀ') && (ch < '一')) || ((ch > 0xac00) && (ch < 0xd7a3)))
                    {
                        if (pStartIndex >= pSrcString.Length)
                        {
                            return "";
                        }
                        return pSrcString.Substring(pStartIndex, ((pLength + pStartIndex) > pSrcString.Length) ? (pSrcString.Length - pStartIndex) : pLength);
                    }
                }
                if (pLength < 0)
                {
                    return str;
                }
                byte[] sourceArray = Encoding.Default.GetBytes(pSrcString);
                if (sourceArray.Length <= pStartIndex)
                {
                    return str;
                }
                int length = sourceArray.Length;
                if (sourceArray.Length > (pStartIndex + pLength))
                {
                    length = pLength + pStartIndex;
                }
                else
                {
                    pLength = sourceArray.Length - pStartIndex;
                    pTailString = "";
                }
                int num2 = pLength;
                int[] numArray = new int[pLength];
                byte[] destinationArray = null;
                int num3 = 0;
                for (int i = pStartIndex; i < length; i++)
                {
                    if (sourceArray[i] > 0x7f)
                    {
                        num3++;
                        if (num3 == 3)
                        {
                            num3 = 1;
                        }
                    }
                    else
                    {
                        num3 = 0;
                    }
                    numArray[i] = num3;
                }
                if ((sourceArray[length - 1] > 0x7f) && (numArray[pLength - 1] == 1))
                {
                    num2 = pLength + 1;
                }
                destinationArray = new byte[num2];
                Array.Copy(sourceArray, pStartIndex, destinationArray, 0, num2);
                return (Encoding.Default.GetString(destinationArray) + pTailString);
            }
            #endregion
    
            #region 截取字符长度
            /// <summary>
            /// 截取字符长度
            /// </summary>
            /// <param name="inputString">字符</param>
            /// <param name="len">长度</param>
            /// <returns></returns>
            public static string CutString(string inputString, int len)
            {
                if (string.IsNullOrEmpty(inputString))
                    return "";
                inputString = DropHtml(inputString);
                ASCIIEncoding ascii = new ASCIIEncoding();
                int tempLen = 0;
                string tempString = "";
                byte[] s = ascii.GetBytes(inputString);
                for (int i = 0; i < s.Length; i++)
                {
                    if ((int)s[i] == 63)
                    {
                        tempLen += 2;
                    }
                    else
                    {
                        tempLen += 1;
                    }
    
                    try
                    {
                        tempString += inputString.Substring(i, 1);
                    }
                    catch
                    {
                        break;
                    }
    
                    if (tempLen > len)
                        break;
                }
                //如果截过则加上半个省略号 
                byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
                if (mybyte.Length > len)
                    tempString += "…";
                return tempString;
            }
    
            public static string DropHtml(string htmlstring)
            {
                if (string.IsNullOrEmpty(htmlstring)) return "";
                //删除脚本  
                htmlstring = Regex.Replace(htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
                //删除HTML  
                htmlstring = Regex.Replace(htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"([
    ])[s]+", "", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"-->", "", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(quot|#34);", """, RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(iexcl|#161);", "xa1", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(cent|#162);", "xa2", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(pound|#163);", "xa3", RegexOptions.IgnoreCase);
                htmlstring = Regex.Replace(htmlstring, @"&(copy|#169);", "xa9", RegexOptions.IgnoreCase);
    
                htmlstring = Regex.Replace(htmlstring, @"&#(d+);", "", RegexOptions.IgnoreCase);
                htmlstring = htmlstring.Replace("<", "");
                htmlstring = htmlstring.Replace(">", "");
                htmlstring = htmlstring.Replace("
    ", "");
                //htmlstring = HttpContext.Current.Server.HtmlEncode(htmlstring).Trim(); 
                return htmlstring;
            }
            #endregion
    
            #region 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母
            /// <summary>
            /// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母
            /// </summary>
            /// <param name="CnChar">单个汉字</param>
            /// <returns>单个大写字母</returns>
            public static string GetCharSpellCode(string CnChar)
            {
                long iCnChar;
                byte[] ZW = Encoding.Default.GetBytes(CnChar);
    
                //如果是字母,则直接返回首字母
                if (ZW.Length == 1)
                {
                    return CutString(CnChar.ToUpper(), 1);
                }
                else
                {
                    int i1 = (short)(ZW[0]);
                    int i2 = (short)(ZW[1]);
                    iCnChar = i1 * 256 + i2;
                }
                // iCnChar match the constant
                if ((iCnChar >= 45217) && (iCnChar <= 45252))
                {
                    return "A";
                }
                else if ((iCnChar >= 45253) && (iCnChar <= 45760))
                {
                    return "B";
                }
                else if ((iCnChar >= 45761) && (iCnChar <= 46317))
                {
                    return "C";
                }
                else if ((iCnChar >= 46318) && (iCnChar <= 46825))
                {
                    return "D";
                }
                else if ((iCnChar >= 46826) && (iCnChar <= 47009))
                {
                    return "E";
                }
                else if ((iCnChar >= 47010) && (iCnChar <= 47296))
                {
                    return "F";
                }
                else if ((iCnChar >= 47297) && (iCnChar <= 47613))
                {
                    return "G";
                }
                else if ((iCnChar >= 47614) && (iCnChar <= 48118))
                {
                    return "H";
                }
                else if ((iCnChar >= 48119) && (iCnChar <= 49061))
                {
                    return "J";
                }
                else if ((iCnChar >= 49062) && (iCnChar <= 49323))
                {
                    return "K";
                }
                else if ((iCnChar >= 49324) && (iCnChar <= 49895))
                {
                    return "L";
                }
                else if ((iCnChar >= 49896) && (iCnChar <= 50370))
                {
                    return "M";
                }
                else if ((iCnChar >= 50371) && (iCnChar <= 50613))
                {
                    return "N";
                }
                else if ((iCnChar >= 50614) && (iCnChar <= 50621))
                {
                    return "O";
                }
                else if ((iCnChar >= 50622) && (iCnChar <= 50905))
                {
                    return "P";
                }
                else if ((iCnChar >= 50906) && (iCnChar <= 51386))
                {
                    return "Q";
                }
                else if ((iCnChar >= 51387) && (iCnChar <= 51445))
                {
                    return "R";
                }
                else if ((iCnChar >= 51446) && (iCnChar <= 52217))
                {
                    return "S";
                }
                else if ((iCnChar >= 52218) && (iCnChar <= 52697))
                {
                    return "T";
                }
                else if ((iCnChar >= 52698) && (iCnChar <= 52979))
                {
                    return "W";
                }
                else if ((iCnChar >= 52980) && (iCnChar <= 53640))
                {
                    return "X";
                }
                else if ((iCnChar >= 53689) && (iCnChar <= 54480))
                {
                    return "Y";
                }
                else if ((iCnChar >= 54481) && (iCnChar <= 55289))
                {
                    return "Z";
                }
                else
                    return ("?");
    
            }
            #endregion
    
            #region 获得IP地址
            /// <summary>
            /// 获得IP地址
            /// </summary>
            /// <returns>字符串数组</returns>
            public static string GetIp()
            {
                HttpContextAccessor _context = new HttpContextAccessor();
                var ip = _context.HttpContext.Request.Headers["X-Forwarded-For"].ToString();
                if (string.IsNullOrEmpty(ip))
                {
                    ip = _context.HttpContext.Connection.RemoteIpAddress.ToString();
                }
                return ip;
            }
            #endregion
    
            #region 获得当前访问的URL地址
            /// <summary>
            /// 获得当前访问的URL地址
            /// </summary>
            /// <returns>字符串数组</returns>
            public static string GetUrl()
            {
                HttpContextAccessor _context = new HttpContextAccessor();
                return _context.HttpContext.Request.Path.ToString();
            }
            #endregion
    
            #region 获取当前服务器域名
            /// <summary>
            /// 获取当前服务器域名
            /// </summary>
            /// <returns></returns>
            public static string GetSchemeHost()
            {
                HttpContextAccessor _context = new HttpContextAccessor();
                return _context.HttpContext.Request.Scheme + "://" + _context.HttpContext.Request.Host;
            }
            #endregion
    
            #region 分割字符串
            public static string[] SplitString(string strContent, char strSplit)
            {
                if (!string.IsNullOrEmpty(strContent))
                {
                    return strContent.Split(new char[] { strSplit }, StringSplitOptions.RemoveEmptyEntries);
                }
                else
                {
                    return new string[0] { };
                }
            }
            /// <summary>
            /// 分割字符串
            /// </summary>
            public static string[] SplitString(string strContent, string strSplit)
            {
                if (!string.IsNullOrEmpty(strContent))
                {
                    if (strContent.IndexOf(strSplit, StringComparison.Ordinal) < 0)
                        return new string[] { strContent };
    
                    return Regex.Split(strContent, Regex.Escape(strSplit), RegexOptions.IgnoreCase);
                }
                else
                    return new string[0] { };
            }
            /// <summary>
            /// /// 按字符串长度切分成数组
            /// /// </summary>
            /// /// <param name="str">原字符串</param> 
            /// /// <param name="separatorCharNum">切分长度</param>
            /// /// <returns>字符串数组</returns>
            public static List<string> SplitByLen(string str, int separatorCharNum)
            {
                List<string> strList = new List<string>();
                if (string.IsNullOrEmpty(str) || str.Length <= separatorCharNum)
                {
                    return strList;
                }
                string tempStr = str;
                
                int iMax = Convert.ToInt32(Math.Ceiling(str.Length / (separatorCharNum * 1.0)));//获取循环次数 
                for (int i = 1; i <= iMax; i++)
                {
                    string currMsg = tempStr.Substring(0, tempStr.Length > separatorCharNum ? separatorCharNum : tempStr.Length);
                    strList.Add(currMsg);
                    if (tempStr.Length > separatorCharNum)
                    {
                        tempStr = tempStr.Substring(separatorCharNum, tempStr.Length - separatorCharNum);
                    }
                }
                return strList;
            }
            #endregion
    
            #region 显示错层方法
            /// <summary>
            /// 显示错层方法
            /// </summary>
            public static string LevelName(string name, decimal? level)
            {
                if (level > 1)
                {
                    string nbsp = "";
                    for (int i = 0; i < level; i++)
                    {
                        nbsp += " ";
                    }
                    name = nbsp + "|--" + name;
                }
                return name;
            }
            #endregion
    
            #region 生成随机字母或数字
    
            private static readonly Random Random = new Random();
    
            /// <summary>
            /// 生成随机数字
            /// </summary>
            /// <param name="length">生成长度</param>
            /// <returns></returns>
            public static string Number(int length)
            {
                return Number(length, false);
            }
    
            /// <summary>
            /// 生成随机数字
            /// </summary>
            /// <param name="length">生成长度</param>
            /// <param name="sleep">是否要在生成前将当前线程阻止以避免重复</param>
            /// <returns></returns>
            public static string Number(int length, bool sleep)
            {
                if (sleep)
                    System.Threading.Thread.Sleep(2);
                string result = "";
    
                for (int i = 0; i < length; i++)
                {
                    result += Random.Next(10).ToString();
                }
                return result;
            }
    
    
            /// <summary>
            /// 根据日期和随机码生成订单号
            /// </summary>
            /// <returns></returns>
            public static string GetOrderNumber()
            {
                string num = DateTime.Now.ToString("yyyyMMddHHmmssms"); //yyyyMMddHHmmssms
                return num + Number(2);
            }
    
            #endregion
    
            #region Base64位加密解密
            /// <summary>
            /// 将字符串转换成base64格式,使用UTF8字符集
            /// </summary>
            /// <param name="content">加密内容</param>
            /// <returns></returns>
            public static string Base64Encode(string content)
            {
                byte[] bytes = Encoding.UTF8.GetBytes(content);
                return Convert.ToBase64String(bytes);
            }
            /// <summary>
            /// 将base64格式,转换utf8
            /// </summary>
            /// <param name="content">解密内容</param>
            /// <returns></returns>
            public static string Base64Decode(string content)
            {
                byte[] bytes = Convert.FromBase64String(content);
                return Encoding.UTF8.GetString(bytes);
            }
            #endregion
    
            #region 条形码解析
            /// <summary>
            /// 分解条形码,并返回数组
            /// </summary>
            /// <param name="code">条形码</param>
            /// <returns>数组0=品牌  1=季节  2=款式  3=批次  4=尺码</returns>
            public static List<string> GetSkuArray(string code)
            {
                var str = new List<string>();
                //品牌,截取0-3
                str.Add(code.Substring(0, 3));
                //季节截取
                str.Add(code.Substring(3, 1));
                //款式截取
                str.Add(code.Substring(4, 1));
                //批次截取
                str.Add(code.Substring(5, 1));
                //尺码截取
                str.Add(code.Substring(6, 1));
                return str;
            }
            #endregion
    
            #region 返回采购单入库状态
            /// <summary>
            /// 返回采购单入库状态
            /// </summary>
            /// <param name="status">状态</param>
            /// <returns></returns>
            public static string PurchaseStatus(string status)
            {
                var str = "";
                switch (int.Parse(status))
                {
                    case 1: str = "未完成入库"; break;
                    case 2: str = "未完成付款"; break;
                    case 3: str = "未完成到票"; break;
                    case 4: str = "完成"; break;
                }
                return str;
            }
            #endregion
    
            #region 生成采购单编号
            /// <summary>
            /// 生成采购单编号
            /// </summary>
            /// <returns></returns>
            public static string PurchaseNumber(int lastNumber)
            {
                return "CG-" + DateTime.Now.ToString("yyyyMMdd") + "-" + lastNumber.ToString();
            }
            #endregion
    
            #region 上传配置
            /// <summary>
            ///  根据文件类型分配路径
            /// </summary>
            /// <param name="fileExt"></param>
            /// <returns></returns>
            public static string AssigendPath(string fileExt, string path)
            {
                if (IsImage(fileExt))
                    return path + "/upload/images/" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + "/";
                if (IsVideos(fileExt))
                    return path + "/upload/videos/" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + "/";
                if (IsDocument(fileExt))
                    return "/upload/files/" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + "/";
                if (IsMusics(fileExt))
                    return "/upload/musics/" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + "/";
                return path + "/upload/others/";
            }
            #endregion
    
            #region 文件格式
            /// <summary>
            /// 是否为图片
            /// </summary>
            /// <param name="_fileExt">文件扩展名,不含“.”</param>
            /// <returns></returns>
            private static bool IsImage(string _fileExt)
            {
                var images = new List<string> { "bmp", "gif", "jpg", "jpeg", "png" };
                if (images.Contains(_fileExt.ToLower())) return true;
                return false;
            }
            /// <summary>
            /// 是否为视频
            /// </summary>
            /// <param name="_fileExt">文件扩展名,不含“.”</param>
            /// <returns></returns>
            private static bool IsVideos(string _fileExt)
            {
                var videos = new List<string> { "rmvb", "mkv", "ts", "wma", "avi", "rm", "mp4", "flv", "mpeg", "mov", "3gp", "mpg" };
                if (videos.Contains(_fileExt.ToLower())) return true;
                return false;
            }
            /// <summary>
            /// 是否为音频
            /// </summary>
            /// <param name="_fileExt">文件扩展名,不含“.”</param>
            /// <returns></returns>
            private static bool IsMusics(string _fileExt)
            {
                var musics = new List<string> { "mp3", "wav" };
                if (musics.Contains(_fileExt.ToLower())) return true;
                return false;
            }
            /// <summary>
            /// 是否为文档
            /// </summary>
            /// <param name="_fileExt">文件扩展名,不含“.”</param>
            /// <returns></returns>
            private static bool IsDocument(string _fileExt)
            {
                var documents = new List<string> { "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "pdf" };
                if (documents.Contains(_fileExt.ToLower())) return true;
                return false;
            }
            #endregion
    
            #region 返回活动名称
            /// <summary>
            /// 返回活动名称
            /// </summary>
            /// <param name="method"></param>
            /// <returns></returns>
            public static string GetActivityMethod(int method)
            {
                var str = "";
                switch (method)
                {
                    case 1: str = "打折"; break;
                    case 2: str = "满减"; break;
                    case 3: str = "买一赠一"; break;
                    default: str = "无"; break;
                }
                return str;
            }
            /// <summary>
            /// 根据方式返回参加活动类型
            /// </summary>
            /// <param name="method"></param>
            /// <returns></returns>
            public static byte GetActivityTypes(int method)
            {
                byte str = 1;
                switch (method)
                {
                    case 1: str = 2; break;
                    case 2: str = 3; break;
                    case 3: str = 4; break;
                }
                return str;
            }
            #endregion
    
            #region 得到一周的周一和周日的日期
            /// <summary> 
            /// 计算本周的周一日期 
            /// </summary> 
            /// <returns></returns> 
            public static DateTime GetMondayDate()
            {
                return GetMondayDate(DateTime.Now);
            }
            /// <summary> 
            /// 计算本周周日的日期 
            /// </summary> 
            /// <returns></returns> 
            public static DateTime GetSundayDate()
            {
                return GetSundayDate(DateTime.Now);
            }
            /// <summary> 
            /// 计算某日起始日期(礼拜一的日期) 
            /// </summary> 
            /// <param name="someDate">该周中任意一天</param> 
            /// <returns>返回礼拜一日期,后面的具体时、分、秒和传入值相等</returns> 
            public static DateTime GetMondayDate(DateTime someDate)
            {
                int i = someDate.DayOfWeek - DayOfWeek.Monday;
                if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。 
                TimeSpan ts = new TimeSpan(i, 0, 0, 0);
                return someDate.Subtract(ts);
            }
            /// <summary> 
            /// 计算某日结束日期(礼拜日的日期) 
            /// </summary> 
            /// <param name="someDate">该周中任意一天</param> 
            /// <returns>返回礼拜日日期,后面的具体时、分、秒和传入值相等</returns> 
            public static DateTime GetSundayDate(DateTime someDate)
            {
                int i = someDate.DayOfWeek - DayOfWeek.Sunday;
                if (i != 0) i = 7 - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。 
                TimeSpan ts = new TimeSpan(i, 0, 0, 0);
                return someDate.Add(ts);
            }
    
            /// <summary>
            /// 根据星期几获得数字的星期几
            /// </summary>
            /// <param name="weekName">例如周一:Monday</param>
            /// <returns></returns>
            public static int GetWeekByWeekName(string weekName)
            {
                var week = 1;
                switch (weekName)
                {
                    case "Monday":
                        week = 1;
                        break;
                    case "Tuesday":
                        week = 2;
                        break;
                    case "Wednesday":
                        week = 3;
                        break;
                    case "Thursday":
                        week = 4;
                        break;
                    case "Friday":
                        week = 5;
                        break;
                    case "Saturday":
                        week = 6;
                        break;
                    case "Sunday":
                        week = 7;
                        break;
                }
                return week;
            }
            #endregion
    
            /// <summary>
            /// 时间戳转换为日期(时间戳单位秒)
            /// </summary>
            /// <param name="TimeStamp"></param>
            /// <returns></returns>
            public static DateTime ConvertToDateTime(long timeStamp)
            {
                var dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                TimeSpan toNow = new TimeSpan(timeStamp);
                return dtStart.Add(toNow);
                //var start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                //return start.AddMilliseconds(timeStamp).AddHours(8);
            }
    
            public static DateTime ConvertToDateTimeTrue(long timeStamp)
            {
                var start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                return start.AddMilliseconds(timeStamp).AddHours(8);
            }
            /// <summary>
            /// 日期转换为时间戳(时间戳单位秒)
            /// </summary>
            /// <param name="TimeStamp"></param>
            /// <returns></returns>
            public static long ConvertToTimeStamp(DateTime time)
            {
                DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                return (long)(time.AddHours(-8) - Jan1st1970).TotalMilliseconds;
            }       
    
            /// <summary>
            /// 生成唯一数
            /// </summary>
            public class UniqueData
            {
                private static object obj = new object();
                private static int _sn = 0;
                public static string Gener()
                {
                    lock (obj)
                    {
                        if (_sn == int.MaxValue)
                        {
                            _sn = 0;
                        }
                        else
                        {
                            _sn++;
                        }
                        //Thread.Sleep(100);
                        return DateTime.Now.ToString("yyyyMMdd") + _sn.ToString().PadLeft(5, '0');
                    }
                }
            }
    
            #region 返回时间差
            public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
            {
                string dateDiff = null;
                try
                {
                    //TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
                    //TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
                    //TimeSpan ts = ts1.Subtract(ts2).Duration();
                    TimeSpan ts = DateTime2 - DateTime1;
                    if (ts.Days >= 1)
                    {
                        dateDiff = DateTime1.Month.ToString() + "月" + DateTime1.Day.ToString() + "日";
                    }
                    else
                    {
                        if (ts.Hours > 1)
                        {
                            dateDiff = ts.Hours.ToString() + "小时前";
                        }
                        else
                        {
                            dateDiff = ts.Minutes.ToString() + "分钟前";
                        }
                    }
                }
                catch
                { }
                return dateDiff;
            }
            #endregion
    
            #region 社区返回用户等级颜色标识
            /// <summary>
            /// 社区返回用户等级颜色标识
            /// </summary>
            /// <param name="groupName"></param>
            /// <returns></returns>
            public static string GetAskGroupColor(string groupName)
            {
                var str = "";
                switch (groupName)
                {
                    case "普通用户":
                        str = "04aad4"; break;
                    case "专家":
                        str = "ffbf00"; break;
                    case "社区管理员":
                        str = "a35429"; break;
                    case "创始人":
                        str = "780978"; break;
                    default:
                        str = "04aad4"; break;
                }
                return str;
            }
            #endregion
    
            /// <summary>
            /// 打乱数组的顺序
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="list"></param>
            /// <returns></returns>
            public static List<T> RandomSort<T>(List<T> list)
            {
                var random = new Random();
                var newList = new List<T>();
                foreach (var item in list)
                {
                    int s = random.Next(newList.Count);
                    newList.Insert(s, item);
                }
                return newList;
            }     
        }
    

      

  • 相关阅读:
    什么是数据产品经理?需要什么能力?有哪些相关书籍可以读?
    Elasticsearch 文章合集
    大数据面试汇总
    产品经理要掌握的数据知识:数据的基本概念、术语、指标,基本技术和分析方法
    产品经理面试6个层面:做狐狸or刺猬?
    HDFS文章合集
    AppleApp(1):TextMate苹果中媲美Notepad++的文本编辑器
    Flex同Java通信BlazeDS入门图文详解(上)
    flex&java通信错误之一:Server.resource.unavailable
    cellForRowAtIndexPath不被执行的原因
  • 原文地址:https://www.cnblogs.com/Mzg121584668/p/13636542.html
Copyright © 2020-2023  润新知