String字符串工具类

时间:2024-10-06 08:38:02

字符串类(StringUtil.cs)

 using System;

 namespace Sam.OA.Common
{
/// <summary>
/// 字符处理工具类
/// 作者:陈彦斌
/// 更新时间:2019年9月11日00:07:11
/// </summary>
[Serializable]
public static class StringUtil
{
/// <summary>
/// 判断字符对象为null或者为""
/// </summary>
/// <param name="obj">字符对象</param>
/// <returns></returns>
public static bool isNullOrBlank(Object obj)
{
if (obj == null || obj.ToString().ToLower() == "null" || obj == DBNull.Value || obj.ToString().Trim() == "" || obj.ToString() == "undefined" || obj.ToString().Equals(decimal.MinValue.ToString()))
return true;
else
return false;
}
/// <summary>
/// 处理字符串
/// </summary>
/// <param name="obj">字符串</param>
/// <returns></returns>
public static string ProcessString(object obj)
{
return isNullOrBlank(obj) ? "null" : "'" + obj.ToString().Replace("--", "") + "'";
}
/// <summary>
/// 判断字符串是否为日期
/// </summary>
/// <param name="strDate">日期字符串</param>
/// <returns></returns>
public static bool ObjectIsDate(object strDate)
{
try
{
DateTime.Parse(ProcessString(strDate));
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 判断字符串是否为decimal
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static bool IsDecimal(object obj)
{
try
{
decimal.Parse(obj.ToString().Trim());
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 对象是否为Null并返回三元运算符值
/// </summary>
/// <param name="obj">对象</param>
/// <returns></returns>
public static string ObjectIsNull(string obj)
{
try
{
return obj == null ? "" : obj.Replace(" ", "");
}
catch (Exception ex)
{
return "";
}
}
/// <summary>
/// 对象是否为空并返回三元运算符值
/// </summary>
/// <param name="obj">对象</param>
/// <returns></returns>
public static string ObjectIsBlank(string obj)
{
try
{
return obj.Replace(" ", "") == "" ? "" : obj.Replace(" ", "");
}
catch (Exception ex)
{
return "";
}
}
/// <summary>
/// 对象是否为Decimal并返回三元运算符值
/// </summary>
/// <param name="obj">对象</param>
/// <returns></returns>
public static decimal ObjectIsDecimal(object obj)
{
try
{
return Convert.ToDecimal(obj.ToString().Replace(" ", "") == "" ? "" : obj);
}
catch (Exception ex)
{
return ;
}
}
/// <summary>
/// 获取当前月的第一天
/// </summary>
/// <returns></returns>
public static DateTime GetFirstDayCurrentMonth()
{
try
{
return DateTime.Now.AddDays( - DateTime.Now.Day).Date;
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 获取当前月的最后一天
/// </summary>
/// <returns></returns>
public static DateTime GetLastDayCurrentMonth()
{
try
{
return DateTime.Now.AddDays(-DateTime.Now.Day).Date.AddMonths();
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 获取指定日期,在为一年中为第几周
/// </summary>
/// <param name="dtWeek">指定时间</param>
/// <reutrn>返回第几周,1-52周</reutrn>
private static int GetWeekOfYear(DateTime dtWeek)
{
System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
int weekOfYear = gc.GetWeekOfYear(dtWeek, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
return weekOfYear;
}
/// <summary>
/// 计算某日起始日期(礼拜一的日期)
/// </summary>
/// <param name="someDate">该周中任意一天</param>
/// <returns>返回礼拜一日期,无时分秒</returns>
public static string GetMondayDate(DateTime someDate)
{
int i = someDate.DayOfWeek - DayOfWeek.Monday;
if (i == -) i = ;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。
TimeSpan ts = new TimeSpan(i, , , );
return someDate.Subtract(ts).ToShortDateString();
}
/// <summary>
/// 计算某日结束日期(礼拜日的日期)
/// </summary>
/// <param name="someDate">该周中任意一天</param>
/// <returns>返回礼拜日日期,无时分秒</returns>
public static string GetSundayDate(DateTime someDate)
{
int i = someDate.DayOfWeek - DayOfWeek.Sunday;
if (i != ) i = - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。
TimeSpan ts = new TimeSpan(i, , , );
return someDate.Add(ts).ToShortDateString();
}
/// <summary>
/// 获取某月的天数
/// </summary>
/// <param name="someDate">日期</param>
/// <returns>当月的天数</returns>
public static int GetDaysInMonth(DateTime someDate)
{
return System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(someDate.Year, someDate.Month);
}
}
}