From 82eba47c84106e286d37ecdb9fc564cc9b80e39f Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 17 十一月 2021 17:19:24 +0800
Subject: [PATCH] cct 色温调节
---
HDL_ON/Common/Utlis.cs | 427 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 420 insertions(+), 7 deletions(-)
diff --git a/HDL_ON/Common/Utlis.cs b/HDL_ON/Common/Utlis.cs
index 329f7f5..13a4af0 100644
--- a/HDL_ON/Common/Utlis.cs
+++ b/HDL_ON/Common/Utlis.cs
@@ -1,19 +1,432 @@
锘縰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垯琛ㄨ揪寮�
+ /// 2021-10-21 11:07:44 鍚屾浜戠姝e垯鏍煎紡 --wxr
+ /// </summary>
+ public static string EmailRegexStr = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$";
+ //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