From 28db30e5a458ee012959269d50e16eadaa0c5d12 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 05 九月 2025 15:10:09 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.Core/Utils/StringUtils/StringUtils.cs | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 90 insertions(+), 1 deletions(-) diff --git a/FlexJobApi.Core/Utils/StringUtils/StringUtils.cs b/FlexJobApi.Core/Utils/StringUtils/StringUtils.cs index a303260..6a3a4b1 100644 --- a/FlexJobApi.Core/Utils/StringUtils/StringUtils.cs +++ b/FlexJobApi.Core/Utils/StringUtils/StringUtils.cs @@ -1,4 +1,5 @@ -锘縰sing Furion.FriendlyException; +锘縰sing Furion.DataValidation; +using Furion.FriendlyException; using Mapster.Utils; using System; using System.Collections.Generic; @@ -48,6 +49,12 @@ return null; } + public static decimal? ToDecimal(this string str) + { + if (str.IsNotNull() && decimal.TryParse(str, out var @int)) return @int; + return null; + } + public static T? ToEnum<T>(this string str, string requiredMessage = null) where T : struct { @@ -77,5 +84,87 @@ return singularName + "s"; } } + + public static bool CheckIsIdentityNumber18(this string identity) + { + return identity.IsNotNull() && identity.TryValidate(EnumValidationTypes.ValiIdentity).IsValid && identity.Length == 18; + } + + /// <summary> + /// 鑾峰彇鎬у埆 + /// </summary> + /// <param name="identity"></param> + /// <returns></returns> + public static EnumUserGender? GetGender(this string identity) + { + if (identity.CheckIsIdentityNumber18()) + { + return identity[16] % 2 == 0 + ? EnumUserGender.Female + : EnumUserGender.Male; + } + else + { + return null; + } + } + + /// <summary> + /// 鑾峰彇鐢熸棩 + /// </summary> + /// <param name="identity"></param> + /// <returns></returns> + public static DateTime? GetBirthday(this string identity) + { + if (identity.CheckIsIdentityNumber18()) + { + return new DateTime( + identity.Substring(6, 4).ToInt()!.Value, + identity.Substring(10, 2).ToInt()!.Value, + identity.Substring(12, 2).ToInt()!.Value); + } + else + { + return null; + } + } + + /// <summary> + /// 鑾峰彇骞撮緞 + /// </summary> + /// <param name="identity"></param> + /// <returns></returns> + public static int? GetAge(this string identity) + { + if (identity.CheckIsIdentityNumber18()) + { + var birthday = identity.GetBirthday(); + return birthday.GetAge(); + } + else + { + return null; + } + } + + /// <summary> + /// 鐢熸垚闅忔満瀛楃涓� + /// </summary> + /// <param name="length"></param> + /// <returns></returns> + public static string GenerateRandomString(int length) + { + if (length <= 0) return null; + var random = new Random(); + var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + var result = new StringBuilder(length); + for (int i = 0; i < length; i++) + { + // 浠庡瓧绗﹂泦涓殢鏈洪�夋嫨涓�涓瓧绗� + int index = random.Next(chars.Length); + result.Append(chars[index]); + } + return result.ToString(); + } } } -- Gitblit v1.9.1