From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 01 七月 2021 15:50:43 +0800
Subject: [PATCH] Revert "1"

---
 HDL_ON/Common/Utlis.cs |  425 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 418 insertions(+), 7 deletions(-)

diff --git a/HDL_ON/Common/Utlis.cs b/HDL_ON/Common/Utlis.cs
index 329f7f5..37e1aa8 100644
--- a/HDL_ON/Common/Utlis.cs
+++ b/HDL_ON/Common/Utlis.cs
@@ -1,19 +1,430 @@
 锘縰sing System;
-namespace HDL_ON.Common
+using Shared;
+using System.Text.RegularExpressions;
+using System.Text;
+
+namespace HDL_ON
 {
     /// <summary>
     /// 甯哥敤宸ュ叿绫�
     /// </summary>
-    public class Utlis
+    public static class Utlis
     {
-        /// <summary>
-        /// 鍏ㄥ眬鎵撳嵃
-        /// </summary>
-        public static void WriteLine(object mes)
+		/// <summary>
+		/// 鍏ㄥ眬鎵撳嵃
+		/// </summary>
+		public static void WriteLine(object mes)
         {
 #if DEBUG
             Console.WriteLine(mes);
 #endif
         }
-    }
+
+        /// <summary>
+        /// 寮圭獥鎻愮ず
+        /// </summary>
+        /// <param name="mes"></param>
+        public static void ShowAlertOnMainThread(string mes)
+        {
+            Application.RunOnMainThread(() => {
+                new Alert("", mes, Language.StringByID(StringId.Close)).Show();
+            });
+        }
+
+		/// <summary>
+		/// ShowTip
+		/// </summary>
+		/// <param name="mes"></param>
+		/// <param name="closeTime">鍏抽棴鏃堕棿</param>
+		public static void ShowTip(String mes, int closeTime = 2)
+		{
+			var tip = new Tip()
+			{
+				Text = mes,
+				CloseTime = closeTime,
+				MaxWidth = Application.GetRealWidth(300),
+				Direction = AMPopTipDirection.None
+			};
+			tip.Show(MainPage.BaseView);
+		}
+
+
+		#region 鈻� 鍚勭姝e垯妫�娴媉______________________
+		/// <summary>
+		/// 鐢ㄤ簬涓浗澶ч檰楠岃瘉鎵嬫満鍙锋鍒欒〃杈惧紡
+		/// 浠�1寮�澶达紝11浣�
+		/// </summary>
+		public static string PhoneRegexStr = "^[1][0-9]{10}$";
+		/// <summary>
+		/// 鐢ㄤ簬楠岃瘉闈炰腑鍥藉ぇ闄嗘墜鏈哄彿姝e垯琛ㄨ揪寮�
+		/// </summary>
+		public static string PhoneForForeignRegexStr = "^[0-9]*$";
+		/// <summary>
+		/// 鐢ㄤ簬楠岃瘉閭姝e垯琛ㄨ揪寮�
+		/// </summary>
+		public static string EmailRegexStr = "^\\s*([A-Za-z0-9_-]+(\\.\\w+)*@(\\w+\\.)+\\w{2,5})\\s*$";
+
+		/// <summary>
+		/// 鍒ゆ柇鏄惁鍖呭惈澶у啓瀛楁瘝
+		/// </summary>
+		/// <returns><c>true</c>, if contain upper was checked, <c>false</c> otherwise.</returns>
+		/// <param name="value">Value.</param>
+		public static bool CheckContainUpper(string value)
+		{
+			Regex reg = new Regex("[A-Z]+");
+			return reg.IsMatch(value);
+		}
+
+		/// <summary>
+		/// 鍒ゆ柇鏄惁鍖呭惈灏忓啓瀛楁瘝
+		/// </summary>
+		/// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
+		/// <param name="value">Value.</param>
+		public static bool CheckContainLower(string value)
+		{
+			Regex reg = new Regex("[a-z]+");
+			return reg.IsMatch(value);
+		}
+
+		/// <summary>
+		/// 鍒ゆ柇鏄惁鍖呭惈鏁板瓧
+		/// </summary>
+		/// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
+		/// <param name="value">Value.</param>
+		public static bool CheckContainNum(string value)
+		{
+			Regex reg = new Regex("[0-9]+");
+			return reg.IsMatch(value);
+		}
+
+		/// <summary>
+		/// 鍒ゆ柇鏄惁鍖呭惈绗﹀彿
+		/// </summary>
+		/// <returns><c>true</c>, if contain lower was checked, <c>false</c> otherwise.</returns>
+		/// <param name="value">Value.</param>
+		public static bool CheckContainSymbol(string value)
+		{
+			Regex reg = new Regex("([^a-z0-9A-Z])+");
+			return reg.IsMatch(value);
+		}
+
+		/// <summary>
+		/// 妫�娴嬮偖绠辨槸鍚﹀悎娉�
+		/// </summary>
+		/// <param name="email"></param>
+		/// <returns></returns>
+		public static bool CheckEmail(string email)
+		{
+			Regex reg = new Regex(EmailRegexStr);
+			return reg.IsMatch(email);
+		}
+
+		/// <summary>
+		/// 妫�娴嬫墜鏈哄彿鏄惁鍚堟硶
+		/// </summary>
+		/// <param name="phoneNumber">鎵嬫満鍙�</param>
+		/// <param name="areaCode">鍦板尯浠g爜</param>
+		/// <returns></returns>
+		public static bool CheckPhoneNumber(string phoneNumber, string areaCode)
+		{
+			//鏍¢獙澶栧浗鎵嬫満鍙�
+			if (areaCode != "86")
+			{
+				Regex reg = new Regex(PhoneForForeignRegexStr);
+				return reg.IsMatch(phoneNumber);
+            }
+            else
+            {
+				//鏍¢獙鍥藉唴鎵嬫満鍙�
+				Regex reg = new Regex(PhoneRegexStr);
+				return reg.IsMatch(phoneNumber);
+			}
+		}
+
+		#endregion
+
+		/// <summary>
+		/// TextButton
+		/// 鏍规嵁鏂囨湰,璁$畻鎸夐挳瀹冨疄闄呯殑瀹藉害
+		/// </summary>
+		/// <param name="btn"></param>
+		/// <param name="extendWidth">琛ュ厖瀹藉害</param>
+		/// <returns></returns>
+		public static int GetRealWidthByTextButton(Button btn, int extendWidth = 1)
+		{
+			if (string.IsNullOrEmpty(btn.Text)) { return Application.GetRealWidth(extendWidth); }
+
+			return btn.GetTextWidth() + Application.GetRealWidth(extendWidth);
+		}
+
+		/// <summary>
+		/// 鏍规嵁鏂囨湰,璁$畻鎸夐挳瀹冨疄闄呯殑瀹藉害
+		/// </summary>
+		/// <returns></returns>
+		public static int GetRealWidthByText(Button btn)
+		{
+			if (string.IsNullOrEmpty(btn.Text)) { return Application.GetRealWidth(4); }
+#if __IOS__
+			//闇�瑕佸鍔犱竴涓宸��
+			return btn.GetTextWidth() + Application.GetRealWidth(8);
+#else
+            //闇�瑕佸鍔犱竴涓宸��
+            return btn.GetTextWidth() + Application.GetRealWidth(4);
+#endif
+		}
+
+
+		/// <summary>
+		/// 鐢熸垚闅忔満瀛楃涓�
+		/// </summary>
+		/// <param name="length">瀛楃涓茬殑闀垮害</param>
+		/// <returns></returns>
+		public static string CreateRandomString(int length)
+		{
+			// 鍒涘缓涓�涓猄tringBuilder瀵硅薄瀛樺偍瀵嗙爜
+			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>
+		/// 鑾峰彇鏃堕棿鎴筹紙ss锛�
+		/// </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>
+		/// 鑾峰彇鏃堕棿鎴筹紙s锛�
+		/// </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();
+		}
+
+
+		#region 鏃堕棿鏍煎紡杞崲
+		private const int Second = 1;
+		private const int Minute = 60 * Second;
+		private const int Hour = 60 * Minute;
+		private const int Day = 24 * Hour;
+		private const int Month = 30 * Day;
+
+		///// <summary>
+		///// 鏃堕棿杞崲
+		///// 灏戜簬1澶�  鏄剧ず 鏃跺垎
+		///// 灏戜簬涓�骞� 鏄剧ず 鏈堟棩
+		///// 澶т簬涓�骞� 鏄剧ず 骞�
+		///// </summary>
+		///// <param name="dateTime"></param>
+		///// <returns></returns>
+		//public static string ToFriendlyDisplay(this DateTime dateTime)
+		//{
+		//	var ts = DateTime.Now - dateTime;
+		//	var delta = ts.TotalSeconds;
+		//	if (delta < Day)
+		//	{
+		//		//鏄剧ず 鏃�:鍒�
+		//		return dateTime.ToString("HH:mm");
+		//	}
+		//	else if (delta < 12 * Month)
+		//	{
+		//		//鏄剧ず 鏈�:鏃�
+		//		return dateTime.ToString("MM/dd");
+		//	}
+		//	else
+		//	{   //鏄剧ず 骞�
+		//		return dateTime.ToString("yyyy");
+		//	}
+		//}
+		/// <summary>
+		/// 鏃堕棿杞崲
+		/// 灏戜簬1澶�  鏄剧ず 鏃跺垎
+		/// 灏戜簬涓�骞� 鏄剧ず 鏈堟棩
+		/// 澶т簬涓�骞� 鏄剧ず 骞�
+		/// </summary>
+		/// <param name="dateTime"></param>
+		/// <returns></returns>
+		public static string ToFriendlyDisplay(this DateTime dateTime)
+		{
+			var nowDateTime = DateTime.Now;
+			var subYear = nowDateTime.Year - dateTime.Year;
+			var subMonth = nowDateTime.Month - dateTime.Month;
+			var subDay = nowDateTime.Day - dateTime.Day;
+
+			//骞翠唤宸�煎ぇ浜�0
+			if(subYear > 0)
+            {
+				//鏄剧ず 骞�
+				return dateTime.ToString("yyyy");
+            }
+            else
+            {
+				//鐩稿悓骞翠唤锛屾湀浠藉樊鍊煎ぇ浜�0
+				if (subMonth > 0)
+                {
+					//鏄剧ず 鏈�:鏃�
+					return dateTime.ToString("MM/dd");
+                }
+                else
+                {
+					//鐩稿悓鏈堜唤锛屾棩鏈熷樊鍊煎ぇ浜�0
+					if (subDay > 0)
+					{
+						//鏄剧ず 鏈�:鏃�
+						return dateTime.ToString("MM/dd");
+					}
+					else
+					{
+						//鍚屼竴澶╂樉绀� 鏃�:鍒�
+						return dateTime.ToString("HH:mm");
+					}
+				}
+            }
+		}
+
+		/// <summary>
+		/// 鏃堕棿杞崲
+		/// 灏戜簬1澶�  鏄剧ず 鏃跺垎
+		/// 灏戜簬涓�骞� 鏄剧ず 鏈堟棩
+		/// 澶т簬涓�骞� 鏄剧ず 骞�
+		/// </summary>
+		/// <param name="dateTime"></param>
+		/// <returns></returns>
+		public static string ToFriendlyDisplay(long unixTimeStamp)
+		{
+			return ToFriendlyDisplay(UnixToDateTimeMS(unixTimeStamp));
+		}
+		#endregion
+
+		
+	}
+
+
 }

--
Gitblit v1.8.0