字符串类(StringUtil.cs)
1 using System;
2
3 namespace Sam.OA.Common
4 {
5 /// <summary>
6 /// 字符处理工具类
7 /// 作者:陈彦斌
8 /// 更新时间:2019年9月11日00:07:11
9 /// </summary>
10 [Serializable]
11 public static class StringUtil
12 {
13 /// <summary>
14 /// 判断字符对象为null或者为""
15 /// </summary>
16 /// <param name="obj">字符对象</param>
17 /// <returns></returns>
18 public static bool isNullOrBlank(Object obj)
19 {
20 if (obj == null || obj.ToString().ToLower() == "null" || obj == DBNull.Value || obj.ToString().Trim() == "" || obj.ToString() == "undefined" || obj.ToString().Equals(decimal.MinValue.ToString()))
21 return true;
22 else
23 return false;
24 }
25 /// <summary>
26 /// 处理字符串
27 /// </summary>
28 /// <param name="obj">字符串</param>
29 /// <returns></returns>
30 public static string ProcessString(object obj)
31 {
32 return isNullOrBlank(obj) ? "null" : "'" + obj.ToString().Replace("--", "") + "'";
33 }
34 /// <summary>
35 /// 判断字符串是否为日期
36 /// </summary>
37 /// <param name="strDate">日期字符串</param>
38 /// <returns></returns>
39 public static bool ObjectIsDate(object strDate)
40 {
41 try
42 {
43 DateTime.Parse(ProcessString(strDate));
44 return true;
45 }
46 catch
47 {
48 return false;
49 }
50 }
51 /// <summary>
52 /// 判断字符串是否为decimal
53 /// </summary>
54 /// <param name="obj"></param>
55 /// <returns></returns>
56 public static bool IsDecimal(object obj)
57 {
58 try
59 {
60 decimal.Parse(obj.ToString().Trim());
61 return true;
62 }
63 catch
64 {
65 return false;
66 }
67 }
68 /// <summary>
69 /// 对象是否为Null并返回三元运算符值
70 /// </summary>
71 /// <param name="obj">对象</param>
72 /// <returns></returns>
73 public static string ObjectIsNull(string obj)
74 {
75 try
76 {
77 return obj == null ? "" : obj.Replace(" ", "");
78 }
79 catch (Exception ex)
80 {
81 return "";
82 }
83 }
84 /// <summary>
85 /// 对象是否为空并返回三元运算符值
86 /// </summary>
87 /// <param name="obj">对象</param>
88 /// <returns></returns>
89 public static string ObjectIsBlank(string obj)
90 {
91 try
92 {
93 return obj.Replace(" ", "") == "" ? "" : obj.Replace(" ", "");
94 }
95 catch (Exception ex)
96 {
97 return "";
98 }
99 }
100 /// <summary>
101 /// 对象是否为Decimal并返回三元运算符值
102 /// </summary>
103 /// <param name="obj">对象</param>
104 /// <returns></returns>
105 public static decimal ObjectIsDecimal(object obj)
106 {
107 try
108 {
109 return Convert.ToDecimal(obj.ToString().Replace(" ", "") == "" ? "0" : obj);
110 }
111 catch (Exception ex)
112 {
113 return 0;
114 }
115 }
116 /// <summary>
117 /// 获取当前月的第一天
118 /// </summary>
119 /// <returns></returns>
120 public static DateTime GetFirstDayCurrentMonth()
121 {
122 try
123 {
124 return DateTime.Now.AddDays(1 - DateTime.Now.Day).Date;
125 }
126 catch (Exception ex)
127 {
128 throw ex;
129 }
130 }
131 /// <summary>
132 /// 获取当前月的最后一天
133 /// </summary>
134 /// <returns></returns>
135 public static DateTime GetLastDayCurrentMonth()
136 {
137 try
138 {
139 return DateTime.Now.AddDays(-DateTime.Now.Day).Date.AddMonths(1);
140 }
141 catch (Exception ex)
142 {
143 throw ex;
144 }
145 }
146 /// <summary>
147 /// 获取指定日期,在为一年中为第几周
148 /// </summary>
149 /// <param name="dtWeek">指定时间</param>
150 /// <reutrn>返回第几周,1-52周</reutrn>
151 private static int GetWeekOfYear(DateTime dtWeek)
152 {
153 System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
154 int weekOfYear = gc.GetWeekOfYear(dtWeek, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
155 return weekOfYear;
156 }
157 /// <summary>
158 /// 计算某日起始日期(礼拜一的日期)
159 /// </summary>
160 /// <param name="someDate">该周中任意一天</param>
161 /// <returns>返回礼拜一日期,无时分秒</returns>
162 public static string GetMondayDate(DateTime someDate)
163 {
164 int i = someDate.DayOfWeek - DayOfWeek.Monday;
165 if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。
166 TimeSpan ts = new TimeSpan(i, 0, 0, 0);
167 return someDate.Subtract(ts).ToShortDateString();
168 }
169 /// <summary>
170 /// 计算某日结束日期(礼拜日的日期)
171 /// </summary>
172 /// <param name="someDate">该周中任意一天</param>
173 /// <returns>返回礼拜日日期,无时分秒</returns>
174 public static string GetSundayDate(DateTime someDate)
175 {
176 int i = someDate.DayOfWeek - DayOfWeek.Sunday;
177 if (i != 0) i = 7 - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。
178 TimeSpan ts = new TimeSpan(i, 0, 0, 0);
179 return someDate.Add(ts).ToShortDateString();
180 }
181 /// <summary>
182 /// 获取某月的天数
183 /// </summary>
184 /// <param name="someDate">日期</param>
185 /// <returns>当月的天数</returns>
186 public static int GetDaysInMonth(DateTime someDate)
187 {
188 return System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(someDate.Year, someDate.Month);
189 }
190 }
191 }