MD5加密 時間差 流水號等方法


        /// <summary>
        /// 使用TimeSpan計算兩個時間差 
        /// </summary>
        /// <param name="DateTime1"></param>
        /// <param name="DateTime2"></param>
        /// <returns>Subtract:從中減去另一個TimeSpan值</returns>
        private string DateDiff(DateTime DateTime1, DateTime DateTime2)
        {
            string dateDiff = null;
            TimeSpan ts = DateTime1.Subtract(DateTime2).Duration();
            dateDiff = ts.Days.ToString() + "" + ts.Hours.ToString() + "小時" + ts.Minutes.ToString() + "分鍾" + ts.Seconds.ToString() + "";
            return dateDiff;
        }

        /// <summary>
        /// // 計算字符串的 MD5 哈希值,並將該哈希作為 32 字符的十六進制格式字符串返回
        /// </summary>
        /// <param name="inputStr"></param>
        /// <returns>常用於用戶注冊</returns>
        public string ToMD5Hash(string inputStr)
        {
            // 創建一個MD5CryptoServiceProvider對象的新實例
            MD5 newMd5 = new MD5CryptoServiceProvider();
            // 將輸入的字符串轉換為一個字節數組並計算哈希值。
            byte[] sourceBit = Encoding.Default.GetBytes(inputStr);
            byte[] dataBit = newMd5.ComputeHash(sourceBit);
            string directStr = BitConverter.ToString(dataBit).Replace("-", "");
            return directStr;
        }
        
        /// <summary>
        /// // 驗證輸入字符串經MD5轉換后,是否等同於一個哈希值
        /// </summary>
        /// <param name="inputStr"></param>
        /// <param name="hash"></param>
        /// <returns>常用於用戶登錄</returns>
        public bool VerifyMd5Hash(string inputStr, string hash)
        {
            // 將輸入字符串MD5加密
            string hashOfInput = ToMD5Hash(inputStr);

            // 創建一個StringComparer實例來比較兩個哈希值
            // StringComparer.OrdinalIgnoreCase:獲取 StringComparer 對象
            // 該對象執行不區分大小寫的序號字符串比較。
            StringComparer comparer = StringComparer.OrdinalIgnoreCase;

            return comparer.Compare(hashOfInput, hash) == 0;
        }
        /// <summary>
        /// 生成年月日時分秒時間流水號格式
        /// </summary>
        /// <param name="now"></param>
        /// <returns></returns>
        public static string SerialNumber(DateTime now)
        {
            int year = now.Year;
            int Month = now.Month;//月部分
            int Day = now.Day;//月中的第幾天
            int Hour = now.Hour;//
            int Minute = now.Minute;//
            int Second = now.Second; //
            return year.ToString("0000") + Month.ToString("00") + Day.ToString("00") + Hour.ToString("00") + Minute.ToString("00") + Second.ToString("00");
        }
        /// <summary>
        /// 根據號以及年月日時分秒生成訂單編號
        /// </summary>
        /// <param name="now"></param>
        /// <param name="berthCode"></param>
        /// <returns></returns>
        public static string SerialNumber(DateTime now, string Code)
        {
            int year = now.Year;
            int Month = now.Month;//月部分
            int Day = now.Day;//月中的第幾天
            int Hour = now.Hour;//
            int Minute = now.Minute;//
            int Second = now.Second; //
            return Code + year.ToString("0000") + Month.ToString("00") + Day.ToString("00") + Hour.ToString("00") + Minute.ToString("00") + Second.ToString("00");
        }
        /// <summary>
        /// 傳過來的DateTime時間格式轉換為Unix時間戳格式
        /// </summary>
        /// <param name="s"></param>
        /// <returns></returns>
        public static string ConventDateTimeInt(string time)
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
            //截取時間轉換為標准時間格式
            string str = time.Substring(0, 4) + "-" + time.Substring(4, 2) + "-" + time.Substring(6, 2) + " " + time.Substring(8, 2) + ":" + time.Substring(10, 2) + ":" + time.Substring(12, 2);
            DateTime nowTime = Convert.ToDateTime(str);
            long unixTime = (long)Math.Round((nowTime - startTime).TotalMilliseconds / 1000, MidpointRounding.AwayFromZero) * 1000;
            return unixTime.ToString();
        }
        /// <summary>
        /// Unix時間戳轉換為DateTime類型時間
        /// </summary>
        /// <param name="d"></param>
        /// <returns></returns>
        public static System.DateTime ConvertIntDateTime(double d)
        {
            System.DateTime time = System.DateTime.MinValue;
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
            time = startTime.AddMilliseconds(d);
            return time;
        }
        /// <summary>
        /// 時間差 
        /// </summary>
        /// <param name="now"></param>
        /// <returns></returns>
        public static int DateTimeSubtract(DateTime now)
        {
            TimeSpan time = DateTime.Now.Subtract(now);
            int hours = time.Hours;//獲取小時
            int Minutes = time.Minutes;//獲取分鍾
            int Seconds = time.Seconds;//獲取秒數
            return hours * 60 * 60 + Minutes * 60 + Seconds;
        }
       
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM