using System; using System.Configuration; using System.Drawing; using System.Globalization; using System.Text.RegularExpressions; using System.Threading; namespace GCAS.Code { public class Tools { public static byte[] StrToToHexByte(string hexString) { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; byte[] returnBytes = new byte[hexString.Length / 2]; for (int i = 0; i < returnBytes.Length; i++) returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); return returnBytes; } public static int ToIndex(string columnName) { if (!Regex.IsMatch(columnName.ToUpper(), @"[A-Z]+")) { throw new Exception("invalid parameter"); } int index = 0; char[] chars = columnName.ToUpper().ToCharArray(); for (int i = 0; i < chars.Length; i++) { index += (chars[i] - 'A' + 1) * (int)Math.Pow(26, chars.Length - i - 1); } return index; } #region 获取 本周、本月、本季度、本年 的开始时间或结束时间 /// /// 获取结束时间 /// /// Week、Month、Season、Year /// /// public static DateTime? GetTimeStartByType(string TimeType, DateTime now) { switch (TimeType) { case "Week": int dayOfWeek = -1 * (int)now.Date.DayOfWeek; DateTime weekStartTime = now.AddDays(dayOfWeek + 1);//取本周一 if (dayOfWeek == 0) //如果今天是周日,则开始时间是上周一 { weekStartTime = weekStartTime.AddDays(-7); } return weekStartTime; case "Month": return now.AddDays(-now.Day + 1); case "Season": var time = now.AddMonths(0 - ((now.Month - 1) % 3)); return time.AddDays(-time.Day + 1); case "Year": return now.AddDays(-now.DayOfYear + 1); default: return null; } } /// /// 获取结束时间 /// /// Week、Month、Season、Year /// /// public static DateTime? GetTimeEndByType(string TimeType, DateTime now) { switch (TimeType) { case "Month": return now.AddMonths(1).AddDays(-now.AddMonths(1).Day + 1).AddDays(-1); case "Season": var time = now.AddMonths((3 - ((now.Month - 1) % 3) - 1)); return time.AddMonths(1).AddDays(-time.AddMonths(1).Day + 1).AddDays(-1); case "Year": var time2 = now.AddYears(1); return time2.AddDays(-time2.DayOfYear); default: return null; } } #endregion public static string GetWeek(int week) { switch (Thread.CurrentThread.CurrentUICulture.Name) { case "en": return ((DayOfWeek)week).ToString(); case "zh-Hans": switch (week) { case 1: return "星期一"; case 2: return "星期二"; case 3: return "星期三"; case 4: return "星期四"; case 5: return "星期五"; case 6: return "星期六"; case 7: return "星期日"; default: return "未知"; } default: return "未知"; } } public static string GetWeek(DayOfWeek week) { switch (Thread.CurrentThread.CurrentUICulture.Name) { case "en": return (week).ToString(); case "zh-Hans": switch (week) { case DayOfWeek.Sunday: return "星期日"; case DayOfWeek.Monday: return "星期一"; case DayOfWeek.Tuesday: return "星期二"; case DayOfWeek.Wednesday: return "星期三"; case DayOfWeek.Thursday: return "星期四"; case DayOfWeek.Friday: return "星期五"; case DayOfWeek.Saturday: return "星期六"; default: return "未知"; } default: return "未知"; } } public static string GetDay(string time) { var dateTime = Convert.ToDateTime(DateTime.Now.Year + "-" + time); switch (Thread.CurrentThread.CurrentUICulture.Name) { case "en": return dateTime.ToString("MMM. dd", CultureInfo.CreateSpecificCulture("en-GB")); case "zh-Hans": return dateTime.ToString("MM月dd号"); default: return "未知"; } } public static string GetMonth(int month) { switch (Thread.CurrentThread.CurrentUICulture.Name) { case "zh-Hans": return month.ToString().PadLeft(2, '0') + "月份"; case "en": switch (month) { case 1: return "January"; case 2: return "February"; case 3: return "March"; case 4: return "April"; case 5: return "May"; case 6: return "June"; case 7: return "July"; case 8: return "August"; case 9: return "September"; case 10: return "October"; case 11: return "November"; case 12: return "December"; default: return "未知"; } default: return "未知"; } } public static Bitmap GetLoginBackground() { switch (Thread.CurrentThread.CurrentUICulture.Name) { case "en": return Properties.Resources.loginbgEN; case "zh-Hans": return Properties.Resources.loginbgZH; default: return Properties.Resources.loginbgZH; } } public static bool ToBool(object obj) { if (obj == null) return false; if (obj.ToString().ToUpper() == "TRUE" || obj.ToString() == "1") return true; if (obj.ToString().ToUpper() == "FALSE" || obj.ToString() == "0") return false; return false; } public static void UpdateAppConfig(string newKey, string newValue) { bool isModified = false; foreach (string key in ConfigurationManager.AppSettings) { if (key == newKey) { isModified = true; } } Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (isModified) { config.AppSettings.Settings.Remove(newKey); } config.AppSettings.Settings.Add(newKey, newValue); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } public static T ToEnum(string name) { Type typeFromHandle = typeof(T); if (typeFromHandle.IsEnum) { return (T)Enum.Parse(typeof(T), name, true); } throw new InvalidCastException("必须是枚举类型才能转换。"); } } }