ÿþusing HotelPms.Share.IO; using System.Data; using System.Diagnostics; using System.Drawing; using System.Globalization; using System.Net.Sockets; using System.Reflection; using System.Runtime.Intrinsics.X86; using System.Text; using System.Text.Encodings.Web; using System.Text.Json; using System.Text.RegularExpressions; using System.Text.Unicode; using static HotelPms.Share.Data.Script.ResourceFile; namespace HotelPms.Share.Util { public enum CallType { /// <summary> /// Ypen0ÖS—_Y0‹0 /// </summary> Get = 0, /// <summary> /// Ypek0$P’0»0Ã0È0Y0‹0 /// </summary> Let, /// <summary> /// ¢•pe /// </summary> Mothod } /// <summary> /// MMyy’0eQ›RW0_0h0M0n0t^n0ØNN¹eÕl /// </summary> public enum MMddInputStyle { Future = 0, //*geg Before = 1, //N»S } /// <summary> /// Install-Package Newtonsoft.Json /// CConvert n0‚i‰n0¬Šfg0Y00 /// û0‹Wn0 YÛc /// û0r‚n0 YÛc(rrr,bbb,ggg’!Color) /// û0XSMOn0 YÛc /// û0rR—{Š—{ /// û0åeØN¢•#0ŒT¦f /// </summary> public class CConvert { private static Regex regexCode = new Regex("^[-0-9]+$");// ‡eW[Rn0-N«ŽL0pe$Ph0-n0ck‰hˆþs /// <summary> /// ïzpeæQt¹e_ /// </summary> public enum FractionType : int { /// <summary> /// RŠ0 NR0 /// </summary> Ceiling, /// <summary> /// ÛVhc”NeQ /// </summary> Round, /// <summary> /// RŠ0hcf0 /// </summary> Floor } private static string zenhan_table_w = "¢0¤0¦0¨0ª0«0­0¯0±0³0µ0·0¹0»0½0¿0Á0Ä0Æ0È0Ê0Ë0Ì0Í0Î0Ï0Ò0Õ0Ø0Û0Þ0ß0à0á0â0ä0æ0è0é0ê0ë0ì0í0ï0ò0ó0›0œ0¡0£0¥0§0©0ã0å0ç0Ã0!ÿ"ÿ#ÿ$ÿ%ÿ&ÿ'ÿ(ÿ)ÿ*ÿ+ÿ,ÿ-ÿ.ÿ/ÿ0ÿ1ÿ2ÿ3ÿ4ÿ5ÿ6ÿ7ÿ8ÿ9ÿ:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿ ÿ ÿ ÿÿ ÿ;ÿ=ÿ>ÿ?ÿ [ÿ]ÿ^ÿ0 0 0000û0ü0 åÿ"; private static string zenhan_table_n = "qÿrÿsÿtÿuÿvÿwÿxÿyÿzÿ{ÿ|ÿ}ÿ~ÿÿ€ÿÿ‚ÿƒÿ„ÿ…ÿ†ÿ‡ÿˆÿ‰ÿŠÿ‹ÿŒÿÿŽÿÿÿ‘ÿ’ÿ“ÿ”ÿ•ÿ–ÿ—ÿ˜ÿ™ÿšÿ›ÿœÿfÿÿžÿŸÿgÿhÿiÿjÿkÿlÿmÿnÿoÿABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!#$%&'()+-=@[]^_`{}~aÿbÿcÿbÿcÿdÿeÿ-\"\\"; private static string dakuon_table_w = "¬0®0°0²0´0¶0¸0º0¼0¾0À0Â0Å0Ç0É0Ð0Ó0Ö0Ù0Ü0"; private static string dakuon_table_n = "«0­0¯0±0³0µ0·0¹0»0½0¿0Á0Ä0Æ0È0Ï0Ò0Õ0Ø0Û0"; private static string handaku_table_w = "Ñ0Ô0×0Ú0Ý0"; private static string handaku_table_n = "Ï0Ò0Õ0Ø0Û0"; private static string[] HalfNumber = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" }; private static string[] FullNumber = new string[] { "ÿ", "ÿ", "ÿ", "ÿ", "ÿ", "ÿ", "ÿ", "ÿ", "ÿ", "ÿ" }; private static string[] KanjiNumber = new string[] { "N", "ŒN", " N", "ÛV", "”N", "mQ", "N", "kQ", "]N", "Ë%" }; /// <summary> /// cš[ïzpeæQt¹e_g0ёM˜’0Bl0‹0 /// </summary> /// <param name="value"></param> /// <returns></returns> public static decimal ToPrice(decimal value, FractionType type) { switch (type) { case FractionType.Ceiling: return Decimal.Ceiling(value); case FractionType.Floor: return Decimal.Floor(value); default: return Decimal.Round(value, 0, MidpointRounding.AwayFromZero); } } /// <summary> /// String‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>string</returns> public static string ToString(object hoObj) { try { if (hoObj == null) { return string.Empty; } if (System.DBNull.Value.Equals(hoObj)) { return string.Empty; } return System.Convert.ToString(hoObj).Trim(); } catch { return string.Empty; } } /// <summary> /// String‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>string</returns> public static string ToString(object hoObj, string a_strValueIfNull) { try { string strValue = ToString(hoObj); return strValue.Length > 0 ? strValue : a_strValueIfNull; } catch { return string.Empty; } } /// <summary> /// String‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>string</returns> public static string ToStringNotTrim(object hoObj) { try { if (hoObj == null) { return string.Empty; } if (System.DBNull.Value.Equals(hoObj)) { return string.Empty; } return System.Convert.ToString(hoObj); } catch { return string.Empty; } } /// <summary> /// String‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>string</returns> public static string ToStringMid(object hoObj, int beginIdx, int length) { try { string vaule = System.Convert.ToString(hoObj); if (vaule.Length > (beginIdx + length)) { return vaule.Substring(beginIdx, length); } else { return vaule; } } catch { return string.Empty; } } public static string ToHexString(byte[] data) { if (data == null || data.Length == 0) { return string.Empty; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sb.Append(data[i].ToString("X2")); } return sb.ToString(); } /// <summary> /// hQèJS҉K0i0F0K0 /// hQ·0¹0Æ0à0þ[Ü_ /// </summary> /// <param name="hsValue"></param> /// <returns></returns> public static bool IsHalf(string value) { for (int i = 0; i < value.Length; i++) { if (!((value[i] <= '\u007E') || // ñ‚peW[ (value[i] == '\u00A5') || // \Š÷S (value[i] == '\u203E') || // ~Š÷S (value[i] >= '\uFF61' && value[i] <= '\uFF9F') // JS҉«0Ê0 )) { return false; } } return true; } /// <summary> /// hQèhQ҉K0i0F0K0 /// </summary> /// <param name="value"></param> /// <returns></returns> public static bool IsFull(string value) { for (int i = 0; i < value.Length; i++) { if ((value[i] <= '\u007E') || // ñ‚peW[ (value[i] == '\u00A5') || // \Š÷S (value[i] == '\u203E') || // ~Š÷S (value[i] >= '\uFF61' && value[i] <= '\uFF9F') // JS҉«0Ê0 ) { return false; } } return true; } /// <summary> /// int‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>int</returns> public static byte ToByte(object hoObj, byte defValue) { try { if (System.DBNull.Value.Equals(hoObj)) { return 0x00; } if (hoObj.ToString().Contains("0x") || hoObj.ToString().Contains("0X")) { return System.Convert.ToByte(hoObj.ToString().Replace(",", string.Empty), 16); } else { return System.Convert.ToByte(hoObj.ToString().Replace(",", string.Empty)); } } catch { return defValue; } } public static byte[] GetBytes(byte value) { try { byte[] dataByte = new byte[1]; dataByte[0] = value; return dataByte; } catch { return new byte[1]; } } /// <summary> /// 4Byte /// </summary> /// <param name="value"></param> /// <returns></returns> public static byte[] GetBytes(float value) { try { byte[] dataByte = BitConverter.GetBytes(value); //if (BitConverter.IsLittleEndian) { Array.Reverse(dataByte); } return dataByte; } catch { return BitConverter.GetBytes(0F); } } /// <summary> /// 8Byte /// </summary> /// <param name="value"></param> /// <returns></returns> public static byte[] GetBytes(double value) { try { byte[] dataByte = BitConverter.GetBytes(value); //if (BitConverter.IsLittleEndian) { Array.Reverse(dataByte); } return dataByte; } catch { return BitConverter.GetBytes(0D); } } public static byte[] GetBytes(decimal value) { try { //Load four 32 bit integers from the Decimal.GetBits function Int32[] bits = decimal.GetBits(value); //Create a temporary list to hold the bytes List<byte> bytes = new List<byte>(); //iterate each 32 bit integer foreach (Int32 i in bits) { //add the bytes of the current 32bit integer //to the bytes list bytes.AddRange(BitConverter.GetBytes(i)); } //return the bytes list as an array byte[] dataByte = bytes.ToArray(); return dataByte; } catch { return new byte[16]; } } public static decimal ToDecimal(byte[] bytes) { //check that it is even possible to convert the array if (bytes.Length != 16) throw new Exception("A decimal must be created from exactly 16 bytes"); //make an array to convert back to int32's Int32[] bits = new Int32[4]; for (int i = 0; i <= 15; i += 4) { //convert every 4 bytes into an int32 bits[i / 4] = BitConverter.ToInt32(bytes, i); } //Use the decimal's new constructor to //create an instance of decimal return new decimal(bits); } /// <summary> /// 8Byte /// </summary> /// <param name="value"></param> /// <returns></returns> public static byte[] GetBytes(DateTime value) { try { //arrProp = BitConverter.GetBytes(dt.Ticks); //DateTime myDateTime = DateTime.FromBinary(BitConverter.ToInt64(arrProp, 0)) byte[] dataByte = BitConverter.GetBytes(value.Ticks); //if (BitConverter.IsLittleEndian) { Array.Reverse(dataByte); } return dataByte; } catch { return BitConverter.GetBytes((long)0); } } /// <summary> /// 1byte /// </summary> /// <param name="value"></param> /// <returns></returns> public static byte[] GetBytes(bool value) { try { byte[] dataByte = BitConverter.GetBytes(value); //if (BitConverter.IsLittleEndian) { Array.Reverse(dataByte); } return dataByte; } catch { return BitConverter.GetBytes(false); } } public static byte[] GetBytes(short value) { try { byte[] dataByte = BitConverter.GetBytes(value); //if (BitConverter.IsLittleEndian) { Array.Reverse(dataByte); } return dataByte; } catch { return BitConverter.GetBytes((short)0); } } /// <summary> /// Ð0¤0È0 /// </summary> /// <param name="value"></param> /// <returns></returns> public static byte[] GetBytes(ushort value) { try { byte[] dataByte = BitConverter.GetBytes(value); //if (BitConverter.IsLittleEndian) { Array.Reverse(dataByte); } return dataByte; } catch { return BitConverter.GetBytes((ushort)0); } } public static byte[] GetBytes(int value) { try { byte[] dataByte = BitConverter.GetBytes(value); //if (BitConverter.IsLittleEndian) { Array.Reverse(dataByte); } return dataByte; } catch { return BitConverter.GetBytes((int)0); } } /// <summary> /// int‹Wk07_6R Yôf(¨0é0ü0Bfo00) /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>int</returns> public static byte ToByte(object hoObj) { return ToByte(hoObj, 0x0); } public static DateTime ToDateTimeFromBytes(byte[] data) { return DateTime.FromBinary(BitConverter.ToInt64(data)); } /// <summary> /// int‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>int</returns> public static int ToInt(object hoObj, int defValue) { try { if (hoObj == null) { return defValue; } else if (System.DBNull.Value.Equals(hoObj)) { return defValue; } else if (hoObj.GetType().Equals(typeof(decimal)))//DBn0money‹Wn04XTxxx.0000h0j0Š0 YÛc1YWeh0j0‹0_00 { return Convert.ToInt32(hoObj); } string text = hoObj.ToString(); if (text.Length == 0) { return defValue; } else if (('A' <= text[0] && text[0] <= 'Z') || ('a' <= text[0] && text[0] <= 'z')) { return defValue; } else { if (text.Contains("0x") || text.Contains("0X")) { return System.Convert.ToInt32(text.Replace(",", string.Empty), 16); } else if (text.Contains(".")) { return (int)System.Convert.ToDecimal(text.Replace(",", string.Empty)); } else { return System.Convert.ToInt32(text.Replace(",", string.Empty)); } } } catch { return defValue; } } /// <summary> /// int‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>int</returns> public static int ToInt(object hoObj) { return ToInt(hoObj, 0); } /// <summary> /// short‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>short</returns> public static short ToShort(object hoObj) { try { return System.Convert.ToInt16(hoObj); } catch { return 0; } } public static ushort ToUInt16(byte[] data) { return ToUInt16(data, 0); } public static ushort ToUInt16(byte[] data, int startIdx) { try { byte[] tmpbyte = new byte[2]; tmpbyte[0] = data[startIdx]; tmpbyte[1] = data[startIdx + 1]; //if (BitConverter.IsLittleEndian) { Array.Reverse(tmpbyte); } return BitConverter.ToUInt16(tmpbyte, 0); } catch { return 0; } } public static ushort ToUShort(object hoObj) { try { if (System.DBNull.Value.Equals(hoObj)) { return 0; } return System.Convert.ToUInt16(hoObj); } catch { return 0; } } /// <summary> /// decimal‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>decimal</returns> public static decimal ToDecimal(object hoObj) { try { if (System.DBNull.Value.Equals(hoObj)) { return 0; } return System.Convert.ToDecimal(hoObj); } catch { return 0; } } public static string ToThousandSeparator(decimal value, string format = "N0") { //return string.Format("{0:#,0}", value); return value.ToString(format); } /// <summary> /// "yyyy/MM/dd"k07_6R Yôf "1900/01/01" ˆ0Š0\U0D04XTo0zz}v’0ԏY0 /// yyyy/MM/dd(ddd) Üfåe /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>long</returns> public static string ToDateString(object hoObj) { return ToDateString(hoObj, string.Empty); } /// <summary> /// long‹Wk07_6R Yôf /// yyyy-MM-dd(ddd) Üfåe~0g0 /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>long</returns> public static string ToDateString(object hoObj, string format) { try { if (System.DBNull.Value.Equals(hoObj)) { return string.Empty; } string ret = string.Empty; if (hoObj is int) { int value = (int)hoObj; if (value <= 0) { return string.Empty; } string sVal = value.ToString().PadLeft(8, '0'); ret = $"{sVal.Substring(0, 4)}/{sVal.Substring(4, 2)}/{sVal.Substring(6, 2)}"; } else { ret = DateTime.Parse(hoObj.ToString()).ToString("yyyy/MM/dd"); } if (ret.CompareTo("1900/01/01") <= 0) { return string.Empty; } else { if (format.Length == 0) { return ret; } else { return DateTime.Parse(hoObj.ToString()).ToString(format); } } } catch { return string.Empty; } } /// <summary> /// "yyyy/MM"k07_6R Yôf "1900/01/01" ˆ0Š0\U0D04XTo0zz}v’0ԏY0 /// </summary> /// <param name="hoObj"></param> /// <returns></returns> public static string ToDateYMString(object hoObj) { try { string ret = DateTime.Parse(hoObj.ToString()).ToString("yyyy/MM"); if (ret.CompareTo("1900/01/01") <= 0) { return string.Empty; } else { return ret; } } catch { return string.Empty; } } /// <summary> /// long‹Wk07_6R Yôf "1900/01/01" ˆ0Š0\U0D04XTo0 "NULL"’0ԏY0 /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>long</returns> public static string ToDateSql(object hoObj) { try { string ret = DateTime.Parse(hoObj.ToString()).ToString("yyyy/MM/dd"); if (ret.CompareTo("1900/01/01") <= 0) { return "NULL"; } else { return string.Format("'{0}'", ret); } } catch { return "NULL"; } } /// <summary> /// long‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>long</returns> public static string ToDateTimeSql(string hoObj) { return ToDateTimeSql(DateTime.Parse(hoObj)); } /// <summary> /// long‹Wk07_6R Yôf "1900/01/01" ˆ0Š0\U0D04XTo0 "NULL"’0ԏY0 /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>long</returns> public static string ToDateTimeSql(DateTime hoObj) { try { string ret = hoObj.ToString("yyyy/MM/dd HH:mm:ss.fff"); if (ret.CompareTo("1900/01/01") <= 0) { return "NULL"; } else { return string.Format("'{0}'", ret); } } catch { return "NULL"; } } /// <summary> /// HH:mmb__ /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToTime(int value) { try { string text = value.ToString().PadLeft(4, '0'); return $"{text.Substring(0, 2)}:{text.Substring(2, 2)}"; } catch { return string.Empty; } } /// <summary> /// long‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>long</returns> public static long ToLong(object hoObj) { try { if (System.DBNull.Value.Equals(hoObj)) { return 0; } return System.Convert.ToInt64(hoObj); } catch { return 0; } } /// <summary> /// float‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>float</returns> public static float ToSingle(object hoObj) { try { if (System.DBNull.Value.Equals(hoObj)) { return 0F; } return System.Convert.ToSingle(hoObj); } catch { return 0; } } /// <summary> /// double‹Wk07_6R Yôf /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>double</returns> public static double ToDouble(object hoObj) { try { if (System.DBNull.Value.Equals(hoObj)) { return 0; } return System.Convert.ToDouble(hoObj); } catch { return 0; } } /// <summary> /// Float‹Wk07_6R Yôf /// </summary> /// <param name="hoObj"></param> /// <returns></returns> public static float ToFloat(object hoObj) { return ToFloat(hoObj, 0); } public static float ToFloat(object hoObj, float defValue) { //20090805 Ûk)R ý R try { if (System.DBNull.Value.Equals(hoObj)) { return 0F; } return float.Parse(hoObj.ToString()); } catch { return defValue; } } /// <summary> /// peW[j0‰00=false/0åNY:true /// </summary> /// <param name="value"></param> /// <returns></returns> public static bool ToBool(object value) { try { if (value == null) { return false; } if (System.DBNull.Value.Equals(value)) { return false; } if (IsNumber(value.ToString())) { return CConvert.ToInt(value.ToString()) != 0; } return bool.Parse(value.ToString()); } catch { return false; } } /// <summary> /// ENUMn0$Pn0‡eW[RK0‰0peW[k0 YôfY0‹0 /// </summary> /// <param name="enumType"></param> /// <param name="value"></param> /// <returns></returns> public static int ToEnumInt(Type enumType, string value) { try { return (int)Enum.Parse(enumType, value); } catch { return -1; } } /// <summary> /// åeØNn0Á0§0Ã0¯0 /// </summary> /// <param name="hoObj">hoObj yyyymmddb__(8Ah)</param> /// <returns>bool</returns> public static bool IsDate(object hoValue) { try { string wsDate = hoValue.ToString(); if (wsDate.Length != 8) { return false; } int wiYear = System.Convert.ToInt32(wsDate.Substring(0, 4)); int wiMon = System.Convert.ToInt32(wsDate.Substring(4, 2)); int wiDay = System.Convert.ToInt32(wsDate.Substring(6, 2)); System.DateTime wvDate = new DateTime(wiYear, wiMon, wiDay); return true; } catch { return false; } } public static bool IsNumber(string sValue) { try { //int.Parse(sValue); int outValue = 0; return int.TryParse(sValue, out outValue); } catch { return false; } } public static bool IsDateTime(string sValue) { try { DateTime.Parse(sValue); return true; } catch { return false; } } /// <summary> /// åeØN7_6R Yôf0¨0é0ü0n0Bfk0"1000/01/01"’0;bŠ0 /// </summary> /// <param name="hoValue"></param> /// <returns></returns> public static DateTime ToDateTime(object hoValue) { try { DateTime ret; if (DateTime.TryParse(hoValue.ToString(), out ret)) { return ret; } else { return DateTime.MinValue; } } catch { return DateTime.MinValue; } } /// <summary> /// yyyyMMdd Ò! DateTime /// </summary> /// <param name="hoValue"></param> /// <returns></returns> public static DateTime ToDate(object hoValue) { try { string wsDate = hoValue.ToString(); int wiYear = System.Convert.ToInt32(wsDate.Substring(0, 4)); int wiMon = System.Convert.ToInt32(wsDate.Substring(4, 2)); int wiDay = System.Convert.ToInt32(wsDate.Substring(6, 2)); return new DateTime(wiYear, wiMon, wiDay); } catch { return DateTime.Parse("1000/01/01"); } } /// <summary> /// SQLn0Date‹WÒ!C#n0int /// </summary> /// <param name="hoValue"></param> /// <returns></returns> public static int ToDateInt(object hoValue) { try { if (hoValue is DateTime) { return CConvert.ToInt(((DateTime)hoValue).ToString("yyyyMMdd")); } else { DateTime ret; if (DateTime.TryParse(hoValue.ToString(), out ret)) { return CConvert.ToInt(ret.ToString("yyyyMMdd")); } else { return 0; } } } catch { return 0; } } /// <summary> /// åeØN± /// </summary> /// <param name="date">yyyyMMdd</param> /// <param name="adding"></param> /// <returns></returns> public static int DateAdd(int date, double adding) { return CConvert.ToDateInt(CConvert.ToDate(date).AddDays(adding)); } /// <summary> /// Ä{òVn0åepe’0ԏY0 /// </summary> /// <param name="beginDate"></param> /// <param name="endDate"></param> /// <returns></returns> public static int DateDiff(int beginDate, int endDate) { TimeSpan ts = CConvert.ToDate(endDate) - CConvert.ToDate(beginDate); return ts.Days; } public static byte[] ToBytes(Stream stream) { byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); return bytes; } public static byte[] ToBytesFromHex(string data) { try { if (data.Length == 0) { return null; } int len = data.Length / 2; byte[] bytes = new byte[len]; for (int i = 0; i < len; i++) { bytes[i] = CConvert.ToByte(string.Format("0x{0}", data.Substring(i * 2, 2)), 16); } return bytes; } catch { return null; } } /// <summary> /// ŒT¦f’0ÖS—_ /// </summary> /// <param name="target"></param> /// <returns></returns> public static string GetJPDate(DateTime target) { return GetJPDate(target, "ggyyt^Mgdåe"); } /// <summary> /// ŒT¦f’0ÖS—_ ‹Oÿggyyt^Mgdåe(ddd) s^b19t^3g1åeÿё ÿ /// </summary> /// <param name="target"></param> /// <returns></returns> public static string GetJPDate(DateTime target, string format) { try { CultureInfo culture = new CultureInfo("ja-JP", true); culture.DateTimeFormat.Calendar = new JapaneseCalendar(); return target.ToString(format, culture); } catch { return string.Empty; } } /// <summary> /// ŒT¦f’!‰¦f /// </summary> /// <param name="jpDate">s^b15t^7g1åe</param> /// <returns></returns> public static DateTime ToDateTimeByJp(string jpDate) { try { CultureInfo culture = new CultureInfo("ja-JP", true); culture.DateTimeFormat.Calendar = new JapaneseCalendar(); return DateTime.ParseExact(jpDate, "ggyyt^Mgdåe", culture); } catch { return DateTime.MinValue; } } ///// <summary> ///// String7_6R Yôf ///// </summary> ///// <param name="hoObj">hoObj</param> ///// <returns>string</returns> //public static Font GetFontByStr(string hsFontStr) //{ // try // { // char[] delimiter = {','}; // string[] wsItems = null; // wsItems = hsFontStr.Split(delimiter); // return new System.Drawing.Font(wsItems[0], ToSingle(wsItems[1]) ,(System.Drawing.FontStyle)ToInteger(wsItems[2]),(System.Drawing.GraphicsUnit)ToInteger(wsItems[3]), System.Byte.Parse(wsItems[4])); // } // catch // { // return null; // } //} /// <summary> /// ¯0é0¹0 Tg0CreateInstance /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>string</returns> public static object ClassForName(string codeBase, string hsClsName) { System.Reflection.Assembly woAssem = null; Type woType = null; try { woAssem = System.Reflection.Assembly.Load(codeBase); woType = woAssem.GetType(hsClsName); return Activator.CreateInstance(woType); } catch { return null; } } /// <summary> /// ¯0é0¹0 Tg0CreateInstance /// </summary> /// <param name="hoObj">hoObj</param> /// <returns>string</returns> public static object ClassForName(string hsClsName) { return ClassForName(System.Reflection.Assembly.GetExecutingAssembly().GetName().Name, hsClsName); } /// <summary> SQLybk‡eW[: ',%[_ Ò!  0ÿ;ÿ?ÿ /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToSqlLimitFullChar(string value) { //20111101 \(g Redmine#1845 return value.Replace("'", " ").Replace(",", "0").Replace("%", "ÿ").Replace("[", ";ÿ").Replace("_", "?ÿ"); } /// <summary> SQLybk‡eW[: 0' 0’! 0 0 /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToSqlFullChar(string value) { return value.Replace("'", " "); } /// <summary> /// SQLybk‡eW[: 0' 0’! 0'' 0 /// j–nSQL‡e /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToSql(string value) { return value.Replace("'", "''"); } /// <summary> /// ‡eW[ YÛcÒ!SQLybk‡eW[: 0' 0’! 0 0 /// </summary> /// <returns></returns> public static string ToStringForSql(object value) { return CConvert.ToSqlFullChar(CConvert.ToString(value)); } /// <summary> valuen0˜îv’0SQLn0$Ph0W0f0OH0‹0ˆ0F0k0Y0‹0 ‹O abc’!'abc' 0DateTimeo0'yyyy/MM/dd' or NULL 0 0boolo00 or 1 0 /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToSqlValue(object value) { if (value == null) { return "NULL"; } if (value.GetType() == typeof(DateTime) || value.GetType() == typeof(Google.Protobuf.WellKnownTypes.Timestamp)) { DateTime date = value.GetType() == typeof(Google.Protobuf.WellKnownTypes.Timestamp) ? (value as Google.Protobuf.WellKnownTypes.Timestamp).ToDateTime() : (DateTime)value; if (CConvert.IsOutOfSmallDatetime((DateTime)date)) { return "NULL"; } else { //string ret = CConvert.ToDateString(value); string ret = date.ToString("yyyy/MM/dd HH:mm:ss.fff"); return (ret.Length == 0 ? "NULL" : ("'" + ret + "'")); } } else if (value.GetType() == typeof(bool)) { return CConvert.ToBool(value) ? "1" : "0"; } else if (value.GetType() == typeof(string)) { return string.Format("'{0}'", ToSqlFullChar(value.ToString())); } else { return string.Format("'{0}'", value); } } /// <summary> valuen0˜îv’0SQLn0$Ph0W0f0OH0‹0ˆ0F0k0Y0‹0 0bool$Pn04XT"1"h0"0"k0Y0‹00 0 0DateTimeo0'yyyy/MM/dd HH:mm:ss' 0 /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToSqlValue1(object value) { if (value == null) { return "NULL"; } if (value.GetType() == typeof(bool)) { return CConvert.ToBool(value) ? "1" : "0"; } else if (value.GetType() == typeof(DateTime) || value.GetType() == typeof(Google.Protobuf.WellKnownTypes.Timestamp)) { DateTime date = value.GetType() == typeof(Google.Protobuf.WellKnownTypes.Timestamp) ? (value as Google.Protobuf.WellKnownTypes.Timestamp).ToDateTime() : (DateTime)value; return string.Format("'{0}'", date.ToString("yyyy/MM/dd HH:mm:ss")); } else { return string.Format("'{0}'", value); } } public static string ToSqlValueBULK(object value) { if (value == null) { return "NULL"; } if (value.GetType() == typeof(DateTime) || value.GetType() == typeof(Google.Protobuf.WellKnownTypes.Timestamp)) { DateTime date = value.GetType() == typeof(Google.Protobuf.WellKnownTypes.Timestamp) ? (value as Google.Protobuf.WellKnownTypes.Timestamp).ToDateTime() : (DateTime)value; string ret = date.ToString("yyyy/MM/dd HH:mm:ss.fff"); return (ret.Length == 0 ? "" : ret); } else if (value.GetType() == typeof(bool)) { return CConvert.ToBool(value) ? "1" : "0"; } else if (value.GetType() == typeof(string)) { return string.Format("{0}", value.ToString().Replace("'", " ")); } else { if (value.Equals(DBNull.Value)) { return ""; } else { return string.Format("{0}", value); } } } /// <summary> /// hQ҉0JS҉¹0Ú0ü0¹0’0d–O0 /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToNoSpace(string value) { return value.Replace("0", string.Empty).Replace(" ", string.Empty); } /// <summary> a_oValuen0$P’0cš[‡eW[g0cš[Ahpe~0g0ËW0f0ԏY0 abc’!'xxxxxxabc' /// </summary> /// <param name="a_oValue"></param> /// <param name="a_nLength"></param> /// <param name="a_chrPadChar"></param> /// <returns></returns> public static string ToPaddedSqlValue(object a_oValue, int a_nLength, char a_chrPadChar) { string strValue = ToString(a_oValue).PadLeft(50, a_chrPadChar); return string.Format("'{0}'", strValue); } /// <summary> tableNamen0Insert‡e’0\O‹0 /// </summary> /// <param name="tableName"></param> /// <param name="parm"></param> /// <returns></returns> public static string ToInsertSql(string tableName, object[] parm) { //stringFormat`0h0Rh0$Pn0º0ì0L00K0Š0k0O0D0n0g00 //cš[¹eÕl //ToInsertSql("T_UseInfo", new object[] { "ID",1,"name","'B0D0F0H0J0'","Kana","'¢0¤0¦0¨0ª0'"}); //úW,g„vk0S0S0o0d0j0R0‹0`0Q0j0n0g0'I{o0‹NMRk0»0Ã0È0W0f0J0O00 string sqlIns = ""; string sqlVal = ""; for (int i = 0; i < parm.Length; i = i + 2) { sqlIns += "," + parm[i].ToString(); sqlVal += "," + parm[i + 1].ToString(); } return "insert into " + tableName + "(" + sqlIns.TrimStart(new char[] { ',' }) + ") " + Environment.NewLine + " values(" + sqlVal.TrimStart(new char[] { ',' }) + ");"; } /// <summary> /// JS҉peW[0ñ‚‡eW[Ò!hQ҉ /// </summary> /// <param name="input"></param> /// <returns></returns> public static string ToSBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 32) { c[i] = (char)12288; continue; } if (c[i] < 127) c[i] = (char)(c[i] + 65248); } return new string(c); } /// <summary> /// hQ҉Ò!JS҉peW[0ñ‚‡eW[ /// </summary> /// <param name="input"></param> /// <returns></returns> public static string ToDBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) c[i] = (char)(c[i] - 65248); } return new string(c); } /// <summary> /// cš[‡eW[Rk0¢0é0Ó0¢0peW[L0+T~0Œ0‹0j0‰0"opeW[x0 YÛc /// </summary> /// <param name="text">þ[aŒ‡eW[R</param> /// <returns></returns> public static string ToKanjiNumber(string text) { string ret = text; for (int i = 0; i < HalfNumber.Length; i++) { ret = ret.Replace(HalfNumber[i], KanjiNumber[i]); } for (int i = 0; i < FullNumber.Length; i++) { ret = ret.Replace(FullNumber[i], KanjiNumber[i]); } return ret; } /// <summary> /// cš[‡eW[Rk0¢0é0Ó0¢0peW[L0+T~0Œ0‹0j0‰0"opeW[x0 YÛc /// </summary> /// <param name="text">þ[aŒ‡eW[R</param> /// <returns></returns> public static string ToFullNumber(string text) { string ret = text; for (int i = 0; i < HalfNumber.Length; i++) { ret = ret.Replace(HalfNumber[i], FullNumber[i]); } return ret; } public static string ToKatakana(string s) { StringBuilder ret = new StringBuilder(); for (int i = 0; i < s.Length; i++) { char c = s[i]; if (c >= 'A0' && c <= '“0') { c = (char)(c + '¡0' - 'A0'); } ret.Append(c); } return ret.ToString(); } public static string ToHiragana(string s) { StringBuilder ret = new StringBuilder(); for (int i = 0; i < s.Length; i++) { char c = s[i]; if (c >= '¡0' && c <= 'ó0') { c = (char)(c + 'A0' - '¡0'); } ret.Append(c); } return ret.ToString(); } /// <summary> /// JS҉K0j0k0 YÛc /// </summary> /// <param name="name"></param> /// <returns></returns> public static string ToHalfKana(string name) { for (int i = 0; i < dakuon_table_n.Length; i++) { name = name.Replace(dakuon_table_w[i].ToString(), dakuon_table_n[i] + "›0"); } for (int i = 0; i < handaku_table_n.Length; i++) { name = name.Replace(handaku_table_w[i].ToString(), handaku_table_n[i] + "œ0"); } for (int i = 0; i < zenhan_table_n.Length; i++) { //System.Diagnostics.Debug.WriteLine(zenhan_table_w[i] + ":" + zenhan_table_n[i]); name = name.Replace(zenhan_table_w[i], zenhan_table_n[i]); } name = name.Replace("0", " "); return name; } public static string ToFullKana(string name) { for (int i = 0; i < dakuon_table_n.Length; i++) { name = name.Replace(dakuon_table_n[i] + "›0", dakuon_table_w[i].ToString()); } for (int i = 0; i < handaku_table_n.Length; i++) { name = name.Replace(handaku_table_n[i] + "œ0", handaku_table_w[i].ToString()); } for (int i = 0; i < zenhan_table_n.Length; i++) { name = name.Replace(zenhan_table_n[i], zenhan_table_w[i]); } name = name.Replace(" ", "0"); return name; } /// <summary> ³—{æQt value1 + value2 /// </summary> /// <param name="value1"></param> /// <param name="value2"></param> /// <returns></returns> public static decimal Summation(object value1, object value2) { return ToDecimal(value1) + ToDecimal(value2); } /// <summary> _—{Š—{ value1 - value2 /// </summary> /// <param name="value1"></param> /// <param name="value2"></param> /// <returns></returns> public static decimal Subtraction(object value1, object value2) { return ToDecimal(value1) - ToDecimal(value2); } /// <summary> rR—{Š—{ _oNum / _oDeno = iPositong0ÛVhc”NeQ(RÍkL00j0‰00) /// </summary> /// <param name="_oNum">RP[</param> /// <param name="_oDeno">RÍk</param> /// <param name="iPositon">\pe¹påN N0,1,2& </param> /// <returns>cš[n0MOng0ÛVhc”NeQU0Œ0_0$P</returns> public static decimal Divide(object _oNum, object _oDeno, int iPositon) { //tepen00 Divide(999,1343,0); //\pe¹påN N Divide(999,1343,2); //RÍkdenominator0RP[numerator decimal dNum = 0; decimal dDeno = 0; decimal returnValue = 0; dNum = ToDecimal(_oNum); dDeno = ToDecimal(_oDeno); if (dDeno != 0) { returnValue = dNum / dDeno; } return Math.Round(returnValue, iPositon, MidpointRounding.AwayFromZero); } /// <summary> rR—{Š—{ _oNum / _oDeno = iPositong0ÛVhc”NeQ(RÍkL00j0‰00) Ò! 0tepe.iPositonAh% 0’0ԏY0 /// </summary> /// <param name="_oNum">RP[</param> /// <param name="_oDeno">RÍk</param> /// <param name="iPositon">;bY0\pe¹påN Nn0Ahpe</param> /// <returns>cš[n0MOng0ÛVhc”NeQU0Œ0_0$P</returns> public static string DividePercntText(object _oNum, object _oDeno, int iPositon) { decimal value = Divide(_oNum, _oDeno, iPositon + 2) * 100; string text = value.ToString(); string[] items = text.Split(new char[] { '.' }); string ret = items[0]; // tepeèR if (items.Length > 1) { string dot = items[1].ToString(); if (dot.Length > iPositon) { dot = dot.Substring(0, iPositon); } ret += ("." + dot); } else { if (iPositon > 0) { ret += ".".PadRight(iPositon + 1, '0'); } } return string.Format("{0}%", ret); } public static string GetTypeName(Type enumType, int code) { try { string result = Enum.GetName(enumType, code); return result == null ? string.Empty : result; } catch { return string.Empty; } } /// <summary> /// /// </summary> /// <param name="value"></param> /// <returns></returns> public static int ToAsc(string value) { byte[] data = System.Text.Encoding.ASCII.GetBytes(value); return (int)data[0]; } /// <summary> /// r‚n0‡eW[R YÛc(A,R,G,B) /// </summary> /// <returns></returns> public static string ToARGB(Color value) { return string.Format("{0},{1},{2},{3}", value.A, value.R, value.G, value.B); } /// <summary> /// ‡eW[R YÛc(A,R,G,B)->r‚ /// </summary> /// <returns></returns> public static Color ToColor(string value) { try { int a = 0; int r = 0; int g = 0; int b = 0; string[] argb = value.Split(new char[] { ',' }); if (argb.Length == 3) { r = ToInt(argb[0]); g = ToInt(argb[1]); b = ToInt(argb[2]); return Color.FromArgb(r, g, b); } else { if (argb.Length >= 1) { a = ToInt(argb[0]); } if (argb.Length >= 2) { r = ToInt(argb[1]); } if (argb.Length >= 3) { g = ToInt(argb[2]); } if (argb.Length >= 4) { b = ToInt(argb[3]); } return Color.FromArgb(a, r, g, b); } } catch { return Color.FromArgb(255, 0, 0, 0); } } /// <summary> /// r‚n0162$P’0«0é0ü0k0 YÛcY0‹00 /// </summary> /// <param name="nClrInt">r‚n0162$P’0]0n0~0~0k0tepek0 YÛcU0Œ0_0$P00Ro0NjuؚD08Ó0Ã0È00Bo0NjuNOD08Ó0Ã0È00</param> /// <returns>«0é0ü0ª0Ö0¸0§0¯0È00</returns> public static Color HexIntToColor(int nClrInt) { string hexClr = string.Format("#{0:X6}", nClrInt); Color clrReturn = System.Drawing.ColorTranslator.FromHtml(hexClr); return clrReturn; } /// <summary> /// «0é0ü0’0r‚n0162$Pk0 YÛcY0‹00 /// </summary> /// <param name="clrInpt">«0é0ü0</param> /// <returns>r‚n0162$P’0]0n0~0~0k0tepek0 YÛcU0Œ0_0$P00Ro0NjuؚD08Ó0Ã0È00Bo0NjuNOD08Ó0Ã0È00</returns> public static int ColorToHexInt(Color clrInpt) { string strHex = string.Format("{0:X2}{1:X2}{2:X2}", clrInpt.R, clrInpt.G, clrInpt.B); int nReturn = int.Parse(strHex, System.Globalization.NumberStyles.AllowHexSpecifier); return nReturn; } /// <summary> /// htmlr‚ YÛc /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToHtmlColor(object value) { string text = ToString(value); if (text.Contains(",")) { return System.Drawing.ColorTranslator.ToHtml(ToColor(text)); } else if (text.StartsWith("#")) { return text; } else { return string.Format("#{0:X6}", CConvert.ToInt(text)); } } /// <summary> /// r‚fK0i0F0K0 /// </summary> /// <param name="value"></param> /// <returns></returns> public static bool IsTransparent(object value) { string text = ToString(value); if (text.Contains(",")) { Color color = ToColor(text); return color.A == 0 && color.R == 255 && color.G == 255 && color.B == 255; } else { return false; } } /// <summary>0åeØNo0sqlserve n0SmallDatetimen0Ä{òV’0S0H0‹0K0n0’0$R­eY0‹0 /// </summary> /// <param name="DateStr"></param> /// <returns>true:…H0_0/false:…H0f0j0D0</returns> public static bool IsOutOfSmallDatetime(string DateStr) { //wQSO„vk0o01900/1/4^ÿ2079/6/6Ã0Ý0¤0 try { DateTime value; return (!DateTime.TryParse(DateStr, out value) || value.CompareTo(DateTime.Parse("1901/01/01")) < 0 || value.CompareTo(DateTime.Parse("2078/01/01")) > 0); } catch { return true; } } /// <summary>0åeØNo0sqlserve n0SmallDatetimen0Ä{òV’0S0H0‹0K0n0’0$R­eY0‹0 /// </summary> /// <param name="DateStr"></param> /// <returns>true:…H0_0/false:…H0f0j0D0</returns> public static bool IsOutOfSmallDatetime(DateTime dt) { //wQSO„vk0o01900/1/4^ÿ2079/6/6Ã0Ý0¤0 try { return (dt.CompareTo(DateTime.Parse("1901/01/01")) < 0 || dt.CompareTo(DateTime.Parse("2078/01/01")) > 0); } catch { return true; } } /// <summary>0åeØNo0sqlserve n0Datetimen0Ä{òV’0S0H0‹0K0n0’0$R­eY0‹0 /// </summary> /// <param name="DateStr"></param> /// <returns>true:…H0f0D0j0D0/false:…H0_0</returns> public static bool IsDBDatetime(DateTime dt) { try { return (dt.CompareTo(DateTime.Parse("1753/01/01")) >= 0 && dt.CompareTo(DateTime.Parse("9999/12/31")) <= 0); } catch { return true; } } /// <summary> /// OO@b’0õ¿Oju÷S0ýSœ^ w T0]0Œ0åN N’0RQ0_0‚0n0’0ÖS—_ /// </summary> /// <param name="t">RŠ0úQW0þ[aŒn0Kb“•D0‰0Z0Ç0ü0¿0</param> /// <returns>[0]:õ¿Oju÷S,[1]:ýSœ^ w T,[2]:]0Œ0åN N</returns> public static string[] GetSeparateAddress(string address) { bool isOk = false; for (int i = 0; i < address.Length; i++) { if (address.Substring(i, 1) != "0") { isOk = true; } } if (!isOk) { return new string[] { "", "", "" }; } //hQè0o0o0X0O0 string[] temp = GetPostCode(address); string postCode = temp[0]; if (postCode.Length > 8) { postCode = postCode.Substring(0, 8); } string prefecture = GetPrefecture(temp[1]); if (prefecture.Length > 20) { prefecture = prefecture.Substring(0, 20); } string any = temp[1].Trim().Remove(0, prefecture.Length); if (any.Length > 50) { any = any.Substring(0, 50); } return new string[] { postCode, prefecture, any }; } /// <summary> /// OO@bK0‰0ýSœ^ w T’0ÖS—_ /// </summary> /// <param name="address">OO@b</param> /// <returns></returns> public static string GetPrefecture(string address) { try { if (address.Length < 3) { return string.Empty; } string ret = string.Empty; string[] targets = new string[] { "ý", "S", "œ^", " w" };//RŠ0úQW0þ[aŒ‡eW[R string third = address.Trim().Substring(0, 3); //RŠ0úQW0‡eW[k0j0‹0n0o003‡eW[îvK04‡eW[îv0 string fourth = address.Trim().Substring(0, 4); foreach (string s in targets) { if (third.EndsWith(s)) { return third; } //3‡eW[îvÁ0§0Ã0¯0 if (fourth.EndsWith(s)) { return fourth; } //4‡eW[îvÁ0§0Ã0¯0 } return ret; } catch { return string.Empty; } } /// <summary> /// OO@bK0‰0õ¿Oju÷S’0ÖS—_ /// </summary> /// <param name="address">OO@b</param> /// <returns></returns> public static string[] GetPostCode(string address) { //HQ-˜K0‰0‡eW[i"}, 00 0 0- 0 00123456789 0åNYL0M0_0¤0ó0Ç0Ã0¯0¹0K0‰0OO@b‹•ËYh0Y0‹00 int index = 0; for (int i = 0; i < address.Length - 1; i++) //OO@b’01‡eW[Z0d0~00Y0 { if (address.Substring(i, 1) == "0") { continue; } string half = CConvert.ToHalfKana(address.Substring(i, 1));//hQ҉’!JS҉ if (!regexCode.IsMatch(half))//0^ÿ90-0åNYj0‰0œbQ0‹0 { index = i; break; } } string code = address.Substring(0, index).Replace("0", ""); // 00 0o0wO00 code = CConvert.ToHalfKana(code);//hQ҉’!JS҉0 string any = address.Substring(index); return new string[] { code, any }; } /// <summary> /// ß0ê0á0ü0È0ë0’0 (1/100 ¤0ó0Á0XSMO)k0 YÛcY0‹00 1Inch = 25.4mm 1mm = 3.94 (¤0ó0Á0/100) /// </summary> /// <param name="mm"></param> /// <returns>Inch/100</returns> public static float ToInch100(float mm) { return (float)((float)mm * 3.94f); } /// <summary> /// (¤0ó0Á0/100)’0ß0ê0á0ü0È0k0 YÛcY0‹00 /// </summary> /// <param name="mm"></param> /// <returns>MM</returns> public static float ToMm(float inch100) { return (float)((float)inch100 / 3.94f); } /// <summary> RectangleF ’! Rectanglek0 YÛc /// </summary> /// <param name="rect"></param> /// <returns></returns> public static Rectangle ToRect(RectangleF rect) { return new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Width, (int)rect.Height); } /// <summary> /// åepen0î]’0ԏY0 /// </summary> /// <param name="endDate"></param> /// <param name="beginDate"></param> /// <returns></returns> public static int GetDaySubtract(DateTime endDate, DateTime beginDate) { TimeSpan ts = endDate.Date - beginDate.Date; return ts.Days; } /// <summary> Host/IP ’! IPk0 YÛc /// </summary> /// <param name="IPHost"></param> /// <returns></returns> public static string ToIpAddres(string IPHost) { try { System.Net.IPHostEntry hostInfo = System.Net.Dns.GetHostEntry(IPHost); SortedList<string, string> IpCollection = new SortedList<string, string>(); foreach (System.Net.IPAddress ip in hostInfo.AddressList) { if (System.Text.RegularExpressions.Regex.IsMatch(ip.ToString(), @"[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}", System.Text.RegularExpressions.RegexOptions.ECMAScript)) { if (ip.AddressFamily == AddressFamily.InterNetwork) { IpCollection.Add(string.Format("{0}-{1}", ip.ToString().StartsWith("192") ? "0" : "1", ip.ToString()), ip.ToString()); } } } return IpCollection.Count == 0 ? string.Empty : IpCollection.Values[0]; } catch (Exception ex) { //MessageBox.Show(ex.Message, text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); System.Diagnostics.Debug.WriteLine(ex.Message); return string.Empty; } } /// <summary> Host/IP ’! Hostk0 YÛc /// </summary> /// <param name="IPHost"></param> /// <returns></returns> public static string ToHostName(string IPHost) { try { System.Net.IPHostEntry hostInfo = System.Net.Dns.GetHostEntry(IPHost); return hostInfo.HostName; } catch (Exception ex) { //MessageBox.Show(ex.Message, text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); System.Diagnostics.Debug.WriteLine(ex.Message); return string.Empty; } } /// <summary> /// åeØN’0yyMMddHHmmssn0ÿÐ0¤0È0n0"ÿ#ÿ$ÿb__ YÛc /// </summary> /// <returns></returns> public static byte[] ToDateBCD6() { return ToDateBCD6(DateTime.Now); } /// <summary> /// åeØN’0yyMMddHHmmssn0ÿÐ0¤0È0n0"ÿ#ÿ$ÿb__ YÛc /// ‹O ÿ2005/12/14 15:30:00 Ò! 0x05, 0x12, 0x14, 0x15, 0x30, 0x00 /// </summary> /// <param name="date"></param> /// <returns></returns> public static byte[] ToDateBCD6(DateTime date) { byte[] data = new byte[6]; string dateText = date.ToString("yyMMddHHmmss"); for (int i = 0; i < 6; i++) { string item = string.Format("0x{0}", dateText.Substring(2 * i, 2)); data[i] = Convert.ToByte(item, 16); } return data; } /// <summary> /// "ÿ#ÿ$ÿK0‰0åeØN‡eW[R’0 YÛc(yyMMddHHmmss) /// </summary> /// <param name="data"></param> /// <param name="index">‹•ËYIndex</param> /// <returns></returns> public static string ToDateStrByBCD(byte[] data, int index) { StringBuilder sb = new StringBuilder(); for (int i = index; i < (index + 6); i++) { sb.Append(data[i].ToString("X").PadLeft(2, '0')); } return sb.ToString(); } /// <summary> /// "ÿ#ÿ$ÿK0‰0åeØN /// </summary> /// <param name="data"></param> /// <param name="index"></param> /// <returns></returns> public static DateTime ToDateByBCD(byte[] data, int index) { string date = CConvert.ToDateStrByBCD(data, index); return CConvert.ToDateTime(string.Format("{0}{1}/{2}/{3} {4}:{5}:{6}", DateTime.Now.Year.ToString().Substring(0, 2), date.Substring(0, 2), date.Substring(2, 2), date.Substring(4, 2), date.Substring(6, 2), date.Substring(8, 2), date.Substring(10, 2))); } public static string ToCsvLine(List<int> list) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.Count; i++) { if (i > 0) { sb.Append(','); } sb.Append(list[i]); } return sb.ToString(); } /// <summary>‡eW[R(peW[CSV)’0ê0¹0È0‹Wg0ԏY0 /// </summary> /// <param name="csvLine"></param> /// <returns></returns> public static List<int> ToList(string csvLine) { List<int> list = new List<int>(); string[] item = csvLine.Split(new char[] { ',' }); for (int i = 0; i < item.Length; i++) { list.Add(CConvert.ToInt(item[i])); } return list; } public static string[] ReadCsvLine(string text, ref bool isIn_quata) { if (text == null) { return null; } List<string> line = new List<string>(); StringBuilder field = new StringBuilder(); bool in_quata = false; bool field_start = true; for (int i = 0; i < text.Length; i++) { char ch = text[i]; if (in_quata) { if (ch == '\"') { if (i < text.Length - 1 && text[i + 1] == '\"') { field.Append('\"'); i++; } else in_quata = false; } else { field.Append(ch); } } else { switch (ch) { case ',': // System.Diagnostics.Debug.WriteLine(field.ToString()); line.Add(field.ToString()); field.Remove(0, field.Length); field_start = true; break; case '\"': if (field_start) in_quata = true; else field.Append(ch); break; default: field_start = false; field.Append(ch); break; } } } if (field.Length > 0 || field_start) { line.Add(field.ToString()); } isIn_quata = in_quata; return line.ToArray(); } /// <summary> /// B1^ÿE1 & B2^ÿE2 ; E1,E2+T~0j0D0 /// NOT (E2=<B1 OR B2>=E1) /// ŒNd0n0Ä{òV͑m0f0D0‹0K0i0F0K0 /// </summary> /// <param name="B1"></param> /// <param name="E1"></param> /// <param name="B2"></param> /// <param name="E2"></param> /// <param name="inclueBeginAndEnd"></param> /// <returns></returns> public static bool IsIntersect(string B1, string E1, string B2, string E2, bool inclueBeginAndEnd) { if (inclueBeginAndEnd) { return !(E2.CompareTo(B1) < 0 || B2.CompareTo(E1) > 0); } else { return !(E2.CompareTo(B1) <= 0 || B2.CompareTo(E1) >= 0); } } /// <summary> /// Ç0ü0¿0Lˆn0³0Ô0ü0 /// </summary> /// <param name="dstTable"></param> /// <param name="srcRow"></param> public static DataRow AddDataRowCopy(DataTable dstTable, DataRow srcRow) { DataRow row = dstTable.NewRow(); dstTable.Rows.Add(row); row.ItemArray = srcRow.ItemArray.Clone() as object[]; return row; } public static string ToUTF8(byte[] buffer) { if (buffer == null) return null; if (buffer.Length <= 3) { return Encoding.UTF8.GetString(buffer); } byte[] bomBuffer = new byte[] { 0xef, 0xbb, 0xbf }; if (buffer[0] == bomBuffer[0] && buffer[1] == bomBuffer[1] && buffer[2] == bomBuffer[2]) { return new UTF8Encoding(false).GetString(buffer, 3, buffer.Length - 3); } return Encoding.UTF8.GetString(buffer); } public static bool IsSmallAlpha(String strToCheck) { Regex objNotPattern = new Regex("[^a-z]"); Regex objPattern = new Regex("^[a-z]+$"); return !objNotPattern.IsMatch(strToCheck) && objPattern.IsMatch(strToCheck); } public static string GetEnumDescription<T>(int value) where T : Enum { try { if (!Enum.IsDefined(typeof(T), value)) { return string.Empty; } T obj = (T)Enum.ToObject(typeof(T), value); return obj.ToDescription(); } catch { return string.Empty; } } ///EnumK0‰0Ç0ü0¿0»0Ã0È0’0ÖS—_Y0‹0 public static DataTable GetEnumTypeList<T>() where T : Enum { try { string codeColumn = "³0ü0É0"; string nameColumn = " Tðy"; DataTable dt = new DataTable(); dt.Columns.Add(codeColumn, Type.GetType("System.Int32")); dt.Columns.Add(nameColumn, Type.GetType("System.String")); foreach (int code in Enum.GetValues(typeof(T))) { DataRow dr = dt.NewRow(); dr[codeColumn] = code; dr[nameColumn] = ((T)Enum.ToObject(typeof(T), code)).ToDescription<T>(); dt.Rows.Add(dr); } return dt; } catch { return null; } } /// <summary> /// rŠS_‡eW[Ro0ª‰‡eW[Rn0-Nk0+T~0Œ0f0j0D0K0 /// </summary> /// <param name="value">i"}‡eW[R</param> /// <param name="owner">ª‰‡eW[R00</param> /// <returns></returns> public static bool IsNotInOwnStr(string value, string owner) { try { for (int i = 0; i <= value.Length - 1; i++) { if (owner.IndexOf(value[i]) != -1) { return false; } } return true; } catch { return false; } } /// <summary> /// rŠS_‡eW[Ro0ª‰‡eW[Rn0-Nk0+T~0Œ0f0~0Y0K0 /// </summary> /// <param name="value">i"}‡eW[R</param> /// <param name="owner">ª‰‡eW[R</param> /// <returns></returns> public static bool IsInOwnStr(string value, string owner) { try { for (int i = 0; i <= value.Length - 1; i++) { if (owner.IndexOf(value[i]) == -1) { return false; } } return true; } catch { return false; } } /// <summary> /// Ä{òVÁ0§0Ã0¯0 /// </summary> /// <param name="hsValue"></param> /// <param name="hsRange"></param> /// <returns></returns> public static bool IsOutOfRange(string hsValue, string hsRange) { try { string[] wsRange; if (hsRange[0] == "'"[0]) { if (hsRange.IndexOf("'" + hsValue + "'") == -1) { return true; } } else { wsRange = hsRange.Split(new char[] { ',' }); wsRange[0] = wsRange[0].Substring(1); wsRange[1] = wsRange[1].Substring(0, wsRange[1].Length - 1); if (hsRange[0] == '[') { if (Convert.ToDouble(hsValue) < Convert.ToDouble(wsRange[0])) { return true; } } else if (hsRange[0] == '(') { if (Convert.ToDouble(hsValue) <= Convert.ToDouble(wsRange[0])) { return true; } } if (hsRange[hsRange.Length - 1] == ']') { if (Convert.ToDouble(hsValue) > Convert.ToDouble(wsRange[1])) { return true; } } else if (hsRange[hsRange.Length - 1] == ')') { if (Convert.ToDouble(hsValue) >= Convert.ToDouble(wsRange[1])) { return true; } } } return false; } catch { return true; } } /// <summary> /// Ç0ü0¿0‹Wn0peW[S /// </summary> /// <param name="type"></param> /// <returns></returns> public static int ToTypeInt(Type type) { if (type == typeof(System.Int32)) { return 2; } else if (type == typeof(bool)) { return 3; } else if (type == typeof(DateTime)) { return 4; } else if (type == typeof(float)) { return 5; } else if (type == typeof(double)) { return 6; } else if (type == typeof(decimal)) { return 7; } else if (type == typeof(System.Byte)) { return 8; } else if (type == typeof(System.Int16)) { return 9; } else { return 1; } } /// <summary> /// peW[ˆ0Š00Ç0ü0¿0‹W’0ԏY0 /// </summary> /// <param name="type"></param> /// <returns></returns> public static Type ToType(int type) { if (type == 2) { return typeof(int); } else if (type == 3) { return typeof(bool); } else if (type == 4) { return typeof(DateTime); } else if (type == 5) { return typeof(float); } else if (type == 6) { return typeof(double); } else if (type == 7) { return typeof(decimal); } else if (type == 8) { return typeof(System.Byte); } else if (type == 9) { return typeof(System.Int16); } else { return typeof(string); } } /// <summary> /// Base64K0‰0 YÛc /// </summary> /// <param name="base64"></param> /// <returns></returns> public static string FromBase64(string base64) { if(string.IsNullOrEmpty(base64)) { return string.Empty; } byte[] bytes = Convert.FromBase64String(base64); return Encoding.UTF8.GetString(bytes); } /// <summary> /// Base64x0 YÛc /// </summary> /// <param name="value"></param> /// <returns></returns> public static string ToBase64(string value) { if (string.IsNullOrEmpty(value)) { return string.Empty; } byte[] bytes = Encoding.UTF8.GetBytes(value); return Convert.ToBase64String(bytes); } /// <summary> /// Net CoreåNM– /// Process.Start¨0é0ü0þ[Ü_ /// </summary> /// <param name="path"></param> public static void StartFile(string path) { //new Process { StartInfo = new ProcessStartInfo(path) { CreateNoWindow = true, UseShellExecute = false } }.Start(); Process.Start(new ProcessStartInfo { FileName = "cmd", Arguments = $"/c start \"\" \"{path}\"", CreateNoWindow = true, UseShellExecute = false }); } #region &&&0CallByName¢•pe¤0&&& /// <summary> /// Propertyn0 Tðyg0$P’0ÖS—_Y0‹0 /// ex1) CallByName(user,"ID",Let,new object(){1},null); /// ex2) ret = CallByName(user,"ID",Get,new object(){},null); /// ex3) ret = CallByName(user,"GetName",Mothod,new object(){1234},null); /// </summary> /// <param name="Object">Object(ex.User)</param> /// <param name="ProcName">ProcName(ex.Name)</param> /// <param name="UseCallType">UseCallType(ex.Let)</param> /// <param name="Args">_pe(ex."j0~0H0")</param> /// <param name="index">index(ex.null)</param> /// <returns>object</returns> public static object? CallByName(object Object, string ProcName, CallType UseCallType, object[] Args, object[] index) { object? oRet = null; Type oType = Object.GetType(); if (UseCallType == CallType.Get) { PropertyInfo? myInfo = oType.GetProperty(ProcName); oRet = myInfo.GetValue(Object, index); } else if (UseCallType == CallType.Let) { PropertyInfo? myInfo = oType.GetProperty(ProcName); object oValue = null; if (Convert.IsDBNull(Args[0])) { return null; } if (Args[0] != null) { if (myInfo.PropertyType.Equals(Args[0].GetType())) { oValue = Args[0]; } else { try { oValue = Convert.ChangeType(Args[0], myInfo.PropertyType); } catch { return null; } } } myInfo.SetValue(Object, oValue, index); } else if (UseCallType == CallType.Mothod) { MethodInfo? myInfo = oType.GetMethod(ProcName); oRet = myInfo.Invoke(Object, Args); } return oRet; } public static object CallByName(object Object, string ProcName, CallType UseCallType, object[] Args) { return CallByName(Object, ProcName, UseCallType, Args, null); } public static object GetPropertyValue(object Object, string ProcName) { return CallByName(Object, ProcName, CallType.Get, null, null); } public static void SetPropertyValue(object Object, string ProcName, object[] Args) { CallByName(Object, ProcName, CallType.Let, Args, null); } #endregion /// <summary> /// JsonW[&{2NlbcbûNa{|„vž[‹O /// </summary> /// <typeparam name="T"></typeparam> /// <param name="json"></param> /// <returns></returns> public static T? ToInstanceFromJson<T>(string json) { return JsonSerializer.Deserialize<T>(json); } /// <summary> /// Json‡eöNlbcbûNa{|„vž[‹O /// </summary> /// <typeparam name="T"></typeparam> /// <param name="file"></param> /// <returns></returns> public static T? ToInstanceFromJsonFile<T>(string file) { try { string json = File.ReadAllText(file, Encoding.UTF8); return ToInstanceFromJson<T>(json); } catch (Exception ex) { OperationLog.Instance.WriteLog(ex.Message); return default; } } /// <summary> /// \ûNa{|„vž[‹OlbcbjsonW[&{2N /// </summary> /// <typeparam name="T"></typeparam> /// <param name="data"></param> /// <returns></returns> public static string ToJsonText<T>(T data) where T : class { var options = new JsonSerializerOptions { Encoder = JavaScriptEncoder.Create(UnicodeRanges.All), WriteIndented = true }; return JsonSerializer.Serialize(data, options); } /// <summary> /// \ûNa{|„vž[‹OÝOX[bcš[„vjson‡eöN /// </summary> /// <typeparam name="T"></typeparam> /// <param name="data">ž[‹O</param> /// <param name="file">&^path„vjson‡eöN T</param> /// <returns></returns> public static bool ToJsonFile<T>(T data, string file) where T : class { try { File.WriteAllText(file, CConvert.ToJsonText<T>(data), Encoding.UTF8); return true; } catch (Exception ex) { OperationLog.Instance.WriteLog(ex.Message); return false; } } /// <summary> /// gRPCn0åeØN¿0¤0×0 YÛc /// </summary> /// <param name="dateTime"></param> /// <returns></returns> public static Google.Protobuf.WellKnownTypes.Timestamp ToTimestamp(DateTime dateTime) { return Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(DateTime.SpecifyKind(dateTime, DateTimeKind.Utc)); } /// <summary> /// peW[­0ü0’0¼bW0_0K0i0F0K0 /// </summary> /// <param name="key"></param> /// <returns></returns> public static bool IsNumPress(string key) { //peW[W0K0eQ›Rg0M0j0D0ˆ0F0k0Y0‹0 if (((key.CompareTo("0") < 0 || key.CompareTo("9") > 0))) { return false; } return true; } /// <summary> /// hQf0peW[K0i0F0K0 /// </summary> /// <param name="strNumber"></param> /// <returns></returns> public static bool IsWholeNumber(string strNumber) { Regex objNotPattern = new Regex("[^0-9]"); Regex objPattern = new Regex("^[0-9]+$"); return !objNotPattern.IsMatch(strNumber) && objPattern.IsMatch(strNumber); } public static string ParseDate(string text, string orgText, MMddInputStyle curMMddInputStyle = MMddInputStyle.Future) { string sbuf = ""; try { if (text.Length == 10) { //eQ›RU0Œ0_0‡eW[RL0åeØNeQ›R‡eW[h0W0f0ckW0D0K0’0Á0§0Ã0¯0Y0‹0 int pos = text.IndexOf('/'); if (pos == 4) { pos = text.LastIndexOf('/'); if (pos == 7) { if (int.Parse(text.Substring(5, 2)) >= 1 && int.Parse(text.Substring(5, 2)) <= 12 && int.Parse(text.Substring(8)) >= 1 && int.Parse(text.Substring(8)) <= 31) { DateTime result; if (DateTime.TryParse(text, out result)) { sbuf = text; } } } } } else if (text.Length == 9) { int pos = text.IndexOf('/'); if (pos == 4) { pos = text.LastIndexOf('/'); if (pos == 7) { // Ex)2012/10/1 if (int.Parse(text.Substring(5, 2)) >= 1 && int.Parse(text.Substring(5, 2)) <= 12 && int.Parse(text.Substring(8)) >= 1 && int.Parse(text.Substring(8)) <= 31) { DateTime result; if (DateTime.TryParse(text.Substring(0, 7) + "/0" + text.Substring(8), out result)) { sbuf = text.Substring(0, 7) + "/0" + text.Substring(8); } } } else if (pos == 6) { //20151218 Ûk)R Redmine#7195 åeØNn0Á0§0Ã0¯0n0AhL0J0K0W0K0c0_00.Substring(8)’!.Substring(7)k0îOck // Ex)2012/1/11 if (int.Parse(text.Substring(5, 1)) >= 1 && int.Parse(text.Substring(5, 1)) <= 12 && int.Parse(text.Substring(7)) >= 1 && int.Parse(text.Substring(7)) <= 31) { DateTime result; if (DateTime.TryParse(text.Substring(0, 5) + "0" + text.Substring(5), out result)) { sbuf = text.Substring(0, 5) + "0" + text.Substring(5); } } } } } else if (text.Length == 8) { int pos = text.LastIndexOf('/'); if (pos == -1) { //¹0é0Ã0·0å0L0eQ›RU0Œ0j0D04XT if (int.Parse(text.Substring(4, 2)) >= 1 && int.Parse(text.Substring(4, 2)) <= 12 && (int.Parse(text.Substring(6, 2)) >= 1 && int.Parse(text.Substring(6, 2)) <= 31)) { DateTime result; if (DateTime.TryParse(text.Substring(0, 4) + "/" + text.Substring(4, 2) + "/" + text.Substring(6, 2), out result)) { sbuf = text.Substring(0, 4) + "/" + text.Substring(4, 2) + "/" + text.Substring(6, 2); } } } else if (pos == 6) { //Ex)2012/1/1 pos = text.IndexOf('/'); if (pos == 4) { DateTime result; if (DateTime.TryParse(text.Substring(0, 4) + "/0" + text.Substring(5, 1) + "/0" + text.Substring(7), out result)) { sbuf = text.Substring(0, 4) + "/0" + text.Substring(5, 1) + "/0" + text.Substring(7); } } } } else if (text.Length == 6) { if (IsWholeNumber(text)) { DateTime result; string dateStr = string.Format("{0}{1}/{2}/{3}", DateTime.Today.Year.ToString().Substring(0, 2), text.Substring(0, 2), text.Substring(2, 2), text.Substring(4, 2)); if (DateTime.TryParse(dateStr, out result)) { sbuf = dateStr; } } } else if (text.Length == 5) { //gåen00eQ›R int pos = text.LastIndexOf('/'); if (pos == 2) { DateTime result; if (DateTime.TryParse(DateTime.Today.Year.ToString() + "/" + text, out result)) { sbuf = DateTime.Today.Year.ToString() + "/" + text; } } } else if (text.Length == 4) { //gåen00eQ›R Ex)1111 int pos = text.LastIndexOf('/'); if (pos == -1) { DateTime result; if (text == "0229") { if (!DateTime.TryParse(DateTime.Today.Year.ToString() + "/02/29", out result))//ÊNt^g0 YÛcg0M0_0 { if (curMMddInputStyle == MMddInputStyle.Future)// 0ÊNt^/02/29 0 or 0egt^/02/29 0 { DateTime.TryParse(DateTime.Today.Year.ToString() + "/02/28", out result);//îNk00228g0åeØNÖS—_ } else if (curMMddInputStyle == MMddInputStyle.Before) { DateTime.TryParse(DateTime.Today.Year.ToString() + "/03/01", out result);//îNk00301g0åeØNÖS—_ } } if (curMMddInputStyle == MMddInputStyle.Future)// 0ÊNt^/02/29 0 or 0egt^/02/29 0 { //*geg if (DateTime.Compare(result.Date, DateTime.Today.Date) < 0) { result = result.AddYears(1);//U0‰0k0*geg } } else if (curMMddInputStyle == MMddInputStyle.Before)// 0ÊNt^/02/29 0 or 0»St^/02/29 0 { //N»S if (DateTime.Compare(result.Date, DateTime.Today.Date) > 0) { result = result.AddYears(-1);//U0‰0k0N»S } } if (DateTime.TryParse(result.Year.ToString() + "/02/29", out result))//gŒ_k0]0n0t^g002/29k0L0B0‹0j0‰0 { sbuf = result.ToString("yyyy/MM/dd"); } } else if (DateTime.TryParse(DateTime.Today.Year.ToString() + "/" + text.Substring(0, 2) + "/" + text.Substring(2), out result)) { if (curMMddInputStyle == MMddInputStyle.Future) { //*geg if (DateTime.Compare(new DateTime(DateTime.Today.Year, int.Parse(text.Substring(0, 2)), int.Parse(text.Substring(2))), DateTime.Today.Date) < 0) { sbuf = (DateTime.Today.Year + 1).ToString() + "/" + text.Substring(0, 2) + "/" + text.Substring(2); } else { sbuf = DateTime.Today.Year.ToString() + "/" + text.Substring(0, 2) + "/" + text.Substring(2); } } else { //N»S if (DateTime.Compare(new DateTime(DateTime.Today.Year, int.Parse(text.Substring(0, 2)), int.Parse(text.Substring(2))), DateTime.Today.Date) <= 0) { sbuf = DateTime.Today.Year.ToString() + "/" + text.Substring(0, 2) + "/" + text.Substring(2); } else { sbuf = (DateTime.Today.Year - 1).ToString() + "/" + text.Substring(0, 2) + "/" + text.Substring(2); } //-----------------------------------liu NwQT2270 ‘!------------------------------------------------------- } } } else if (pos == 1) { //gåen00eQ›R Ex)1/11 DateTime result; if (DateTime.TryParse(DateTime.Today.Year.ToString() + "/0" + text, out result)) { sbuf = DateTime.Today.Year.ToString() + "/0" + text; } } else if (pos == 2) { //gåen00eQ›R Ex)11/1 DateTime result; if (DateTime.TryParse(DateTime.Today.Year.ToString() + "/" + text.Substring(0, 2) + "/0" + text.Substring(3), out result)) { sbuf = DateTime.Today.Year.ToString() + "/" + text.Substring(0, 2) + "/0" + text.Substring(3); } } } else if (text.Length == 3) { //gåen00eQ›R Ex)111 int pos = text.LastIndexOf('/'); if (pos == 1) { //gåen00eQ›R Ex)1/1 DateTime result; if (DateTime.TryParse(DateTime.Today.Year.ToString() + "/0" + text, out result)) { sbuf = result.ToShortDateString(); } } } else if (text.Length == 2) { //EX 01 int pos = text.LastIndexOf('/'); if (pos == -1) { DateTime result; if (DateTime.TryParse(DateTime.Today.Year.ToString() + "/" + DateTime.Today.Month.ToString() + "/" + text, out result)) { if (DateTime.Compare(DateTime.Today.Date, new DateTime(DateTime.Today.Year, DateTime.Today.Month, int.Parse(text))) <= 0) { sbuf = DateTime.Today.Year.ToString() + "/" + DateTime.Today.Month.ToString() + "/" + text; } else { if ((DateTime.Today.Month + 1) > 12) { sbuf = (DateTime.Today.Year + 1).ToString() + "/01" + "/" + text; } else { sbuf = DateTime.Today.Year.ToString() + "/" + (DateTime.Today.Month + 1).ToString() + "/" + text; } } sbuf = DateTime.Parse(sbuf).ToString("yyyy/MM/dd"); } } } return sbuf.Length == 0 ? orgText : sbuf; } catch { return orgText; } } /// <summary> /// Bf“•‡eW[Rn0 Rå] /// </summary> /// <returns></returns> public static string ParseTime(string text, string orgText) { // 00:00 ^ÿ 23:59 string sbuf = ""; try { if (text.Length > 5) { return string.Empty; } int pos = text.LastIndexOf(':'); if (text.Length == 5) { if (pos == 2) { if (int.Parse(text.Substring(0, 2)) >= 0 && int.Parse(text.Substring(0, 2)) < 24 && int.Parse(text.Substring(3)) >= 0 && int.Parse(text.Substring(3)) <= 59) { sbuf = text; } } } else if (text.Length == 4) { if (pos >= 0) { string[] items = text.Split(new char[] { ':' }); if (int.Parse(items[0]) >= 0 && int.Parse(items[0]) < 24 && int.Parse(items[1]) >= 0 && int.Parse(items[1]) <= 59) { sbuf = int.Parse(items[0]).ToString().PadLeft(2, '0') + ":" + int.Parse(items[1]).ToString().PadLeft(2, '0'); } } else { if (int.Parse(text.Substring(0, 2)) >= 0 && int.Parse(text.Substring(0, 2)) < 24 && int.Parse(text.Substring(2)) >= 0 && int.Parse(text.Substring(2)) <= 59) { sbuf = text.Substring(0, 2) + ":" + text.Substring(2); } } } else { if (pos >= 0) { string[] items = text.Split(new char[] { ':' }); if (int.Parse(items[0]) >= 0 && int.Parse(items[0]) < 24 && int.Parse(items[1]) >= 0 && int.Parse(items[1]) <= 59) { sbuf = int.Parse(items[0]).ToString().PadLeft(2, '0') + ":" + int.Parse(items[1]).ToString().PadLeft(2, '0'); } } else if (text.Length == 3) { if (int.Parse(text.Substring(0, 1)) >= 0 && int.Parse(text.Substring(0, 1)) < 24 && int.Parse(text.Substring(1)) >= 0 && int.Parse(text.Substring(1)) <= 59) { sbuf = text.Substring(0, 1) + ":" + text.Substring(1); } } else if (text.Length == 2) { if (int.Parse(text) >= 0 && int.Parse(text) < 24) { sbuf = text + ":00"; } } else if (text.Length == 1) { sbuf = text.PadLeft(2, '0') + ":00"; } } return sbuf.Length == 0 ? orgText : sbuf; } catch { return orgText; } } } }