From 1ba40bc52716e732f53bf74a68db9eb9d75c0844 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 16 十二月 2020 10:42:04 +0800
Subject: [PATCH] 20201216-1
---
HDL_ON/Common/Utlis.cs | 328 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 322 insertions(+), 6 deletions(-)
diff --git a/HDL_ON/Common/Utlis.cs b/HDL_ON/Common/Utlis.cs
index 329f7f5..51066b8 100644
--- a/HDL_ON/Common/Utlis.cs
+++ b/HDL_ON/Common/Utlis.cs
@@ -1,19 +1,335 @@
锘縰sing System;
-namespace HDL_ON.Common
+using Shared;
+using System.Text.RegularExpressions;
+using System.Text;
+
+namespace HDL_ON
{
/// <summary>
/// 甯哥敤宸ュ叿绫�
/// </summary>
public 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,
+ 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>
+ ///
+ /// </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();
+ }
+
+
+ }
+
+
}
--
Gitblit v1.8.0