JLChen
2020-12-09 e87985ec1dcb69beedaf9f95e8e7aba14b7c08d6
HDL_ON/Common/Utlis.cs
@@ -1,6 +1,9 @@
using System;
using Shared;
using System.Text.RegularExpressions;
using System.Text;
using System.Collections.Generic;
using System.Collections;
namespace HDL_ON
{
@@ -171,6 +174,164 @@
#endif
      }
      /// <summary>
      /// 生成随机字符串
      /// </summary>
      /// <param name="length">字符串的长度</param>
      /// <returns></returns>
      public static string CreateRandomString(int length)
      {
         // 创建一个StringBuilder对象存储密码
         StringBuilder sb = new StringBuilder();
         //使用for循环把单个字符填充进StringBuilder对象里面变成14位密码字符串
         for (int i = 0; i < length; i++)
         {
            Random random = new Random(Guid.NewGuid().GetHashCode());
            //随机选择里面其中的一种字符生成
            switch (random.Next(3))
            {
               case 0:
                  //调用生成生成随机数字的方法
                  sb.Append(createNum());
                  break;
               case 1:
                  //调用生成生成随机小写字母的方法
                  sb.Append(createSmallAbc());
                  break;
               case 2:
                  //调用生成生成随机大写字母的方法
                  sb.Append(createBigAbc());
                  break;
            }
         }
         return sb.ToString();
      }
      /// <summary>
      /// 生成单个随机数字
      /// </summary>
      static int createNum()
      {
         Random random = new Random(Guid.NewGuid().GetHashCode());
         int num = random.Next(10);
         return num;
      }
      /// <summary>
      /// 生成单个大写随机字母
      /// </summary>
      static string createBigAbc()
      {
         //A-Z的 ASCII值为65-90
         Random random = new Random(Guid.NewGuid().GetHashCode());
         int num = random.Next(65, 91);
         string abc = Convert.ToChar(num).ToString();
         return abc;
      }
      /// <summary>
      /// 生成单个小写随机字母
      /// </summary>
      static string createSmallAbc()
      {
         //a-z的 ASCII值为97-122
         Random random = new Random(Guid.NewGuid().GetHashCode());
         int num = random.Next(97, 123);
         string abc = Convert.ToChar(num).ToString();
         return abc;
      }
        /// <summary>
        ///
        /// </summary>
        /// <param name="unixTimeStamp"></param>
        /// <returns></returns>
        public static DateTime UnixToDateTime(long unixTimeStamp)
        {
            DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
            return startTime.AddSeconds(unixTimeStamp);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="unixTimeStamp"></param>
        /// <returns></returns>
        public static long DateTimeToUnix(DateTime dateTime)
        {
            DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
            return (long)(dateTime - startTime).TotalSeconds; // 相差秒数
        }
      /// <summary>
      ///
      /// </summary>
      /// <param name="unixTimeStamp"></param>
      /// <returns></returns>
      public static DateTime UnixToDateTimeMS(long unixTimeStamp)
      {
         DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
         return startTime.AddMilliseconds(unixTimeStamp);
      }
      /// <summary>
        ///
        /// </summary>
        /// <param name="unixTimeStamp"></param>
        /// <param name="format"></param>
        /// <returns></returns>
      public static string UnixToDateTimeWithFormatMS(long unixTimeStamp, string format = "yyyy")
      {
         DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区
         return startTime.AddMilliseconds(unixTimeStamp).ToString(format);
      }
      /// <summary>
      ///
      /// </summary>
      /// <param name="unixTimeStamp">毫秒时间戳</param>
      /// <returns></returns>
      public static string UnixToDateTimeYearMS(long unixTimeStamp)
      {
         try
         {
            return UnixToDateTimeWithFormatMS(unixTimeStamp);
            }
            catch
            {
            return "2000";
            }
      }
      /// <summary>
        ///
        /// </summary>
        /// <param name="isMilliseconds">是否微秒</param>
        /// <returns></returns>
      public static string GetTimestamp(bool isMilliseconds = true)
      {
         System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
         if (isMilliseconds)
         {
            return ((long)(DateTime.Now - startTime).TotalMilliseconds).ToString(); // 相差微秒数
         }
         else
         {
                return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 相差秒数
            }
      }
      /// <summary>
      /// 获取请求提交的语言参数
      /// </summary>
      public static string GetPostLanguageType()
      {
         return Language.CurrentLanguage == "Chinese" ? LanguageTypeEnum.CHINESE.ToString() : LanguageTypeEnum.ENGLISH.ToString();
      }
   }
}