C#基础类型扩展(时间格式化,集合、实例及字符串判空,数值取舍及取固定位数)
技术没什么,积累平时常用的,可以少敲几行代码。。哈哈哈哈~
1.时间扩展
/// <summary>
/// 将当前System.DateTime对象的值转换成其等效的字符串格式(yyyy-MM-dd)表示。
/// </summary>
/// <param name="time">时间</param>
/// <returns></returns>
public static string ToDateString(this DateTime time)
{
string dateStr = time.Year.ToString() + "-"
+ (time.Month < 10 ? ("0" + time.Month.ToString()) : time.Month.ToString()) + "-"
+ (time.Day < 10 ? ("0" + time.Day.ToString()) : time.Day.ToString());
return dateStr;
}
/// <summary>
/// 将当前System.DateTime对象的值转换成其等效的字符串格式(HH:mm:ss)表示。
/// </summary>
/// <param name="time">时间</param>
/// <returns></returns>
public static string ToTimeString(this DateTime time)
{
string timeStr = (time.Hour < 10 ? ("0" + time.Hour.ToString()) : time.Hour.ToString()) + ":"
+ (time.Minute < 10 ? ("0" + time.Minute.ToString()) : time.Minute.ToString()) + ":"
+ (time.Second < 10 ? ("0" + time.Second.ToString()) : time.Second.ToString());
return timeStr;
}
/// <summary>
/// 将当前System.DateTime对象的值转换成其等效的字符串格式(yyyy-MM-dd HH:mm:ss)表示。
/// </summary>
/// <param name="time">时间</param>
/// <returns></returns>
public static string ToDateTimeString(this DateTime time)
{
string timeStr = time.Year.ToString() + "-"
+ (time.Month < 10 ? ("0" + time.Month.ToString()) : time.Month.ToString()) + "-"
+ (time.Day < 10 ? ("0" + time.Day.ToString()) : time.Day.ToString()) + " "
+ (time.Hour < 10 ? ("0" + time.Hour.ToString()) : time.Hour.ToString()) + ":"
+ (time.Minute < 10 ? ("0" + time.Minute.ToString()) : time.Minute.ToString()) + ":"
+ (time.Second < 10 ? ("0" + time.Second.ToString()) : time.Second.ToString());
return timeStr;
}
/// <summary>
/// 将当前System.DateTime对象的值转换成其等效的字符串格式(yyyyMMddHHmmss)表示。
/// </summary>
/// <param name="time">时间</param>
/// <returns></returns>
public static string ToLongDateTimeString(this DateTime time)
{
string timeStr = time.Year.ToString()
+ (time.Month < 10 ? ("0" + time.Month.ToString()) : time.Month.ToString())
+ (time.Day < 10 ? ("0" + time.Day.ToString()) : time.Day.ToString())
+ (time.Hour < 10 ? ("0" + time.Hour.ToString()) : time.Hour.ToString())
+ (time.Minute < 10 ? ("0" + time.Minute.ToString()) : time.Minute.ToString())
+ (time.Second < 10 ? ("0" + time.Second.ToString()) : time.Second.ToString());
return timeStr;
}
/// <summary>
/// 获取此实例距当天的年数。
/// </summary>
/// <param name="time">指定时间(如出生日期等)</param>
/// <returns></returns>
public static int GetYearsToToday(this DateTime time)
{
int years = DateTime.Today.Year - time.Year;
return years;
}
/// <summary>
/// 返回指定日期的最后一秒。
/// </summary>
/// <param name="date">指定日期(如'2017-06-28')</param>
/// <returns>返回指定日期最后一秒(如'2017-06-28 23:59:59')</returns>
public static DateTime ToLastSecondOfDate(this DateTime date)
{
return date.AddDays(1).AddSeconds(-1);
}
2.集合扩展
/// <summary>
/// 获取该List的第一个实例。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public static T FirstOrDefault_DIY<T>(this List<T> list)
{
if (list != null && list.Count > 0)
{
return list[0];
}
else
{
return default(T);
}
}
/// <summary>
/// 判断实例是否为空。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public static bool IsNull<T>(this T model)
{
if (model == null)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 判断实例是否为空。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public static bool IsNotNull<T>(this T model)
{
if (model != null)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 判断List是否包含实例。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public static bool IsNullOrEmpty<T>(this List<T> list)
{
if (list == null || list.Count == 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 判断List是否包含实例。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public static bool IsNotNullOrEmpty<T>(this List<T> list)
{
if (list != null && list.Count > 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 将List中某属性联合成逗号隔开的字符串。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="columnName"></param>
/// <returns></returns>
public static string ToUnionProperty<T>(this List<T> list, string propertyName)
{
string unionStr = string.Empty;
if (list != null && list.Count > 0)
{
for (int i = 0, j = list.Count; i < j; i++)
{
T model = list[i];
PropertyInfo[] propertys = model.GetType().GetProperties();
// 属性与字段名称一致的进行赋值
foreach (PropertyInfo pi in propertys)
{
if (pi.Name.ToLower().Equals(propertyName.ToLower()))
{
unionStr += "'" + pi.GetValue(model, null) + "',";
}
}
}
unionStr = unionStr.TrimEnd(',');
}
return unionStr;
}
/// <summary>
/// 判断DataTable是否包含实例。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public static bool IsNullOrEmpty(this DataTable dt)
{
if (dt == null || dt.Rows.Count == 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 判断DataTable是否包含实例。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <returns></returns>
public static bool IsNotNullOrEmpty(this DataTable dt)
{
if (dt != null && dt.Rows.Count > 0)
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 将DataTable中某字段联合成逗号隔开的字符串。
/// </summary>
/// <param name="dt"></param>
/// <param name="columnName"></param>
/// <returns></returns>
public static string ToUnionColumn(this DataTable dt, string columnName)
{
string unionStr = string.Empty;
if (dt != null && dt.Rows.Count > 0)
{
DataRow dr = null;
for (int i = 0, j = dt.Rows.Count; i < j; i++)
{
dr = dt.Rows[i];
// 属性与字段名称一致的进行赋值
foreach (DataColumn dc in dt.Columns)
{
if (dc.ColumnName.ToLower().Equals(columnName.ToLower()))
{
unionStr += "'" + dr[columnName] + "',";
}
}
}
unionStr = unionStr.TrimEnd(',');
}
return unionStr;
}
3.字符扩展
/// <summary>
/// 指示指定的字符串是null或System.String.Empty字符串。
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNullOrEmpty(this string str)
{
return string.IsNullOrEmpty(str);
}
/// <summary>
/// 指示指定的字符串不是null或System.String.Empty字符串。
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsNotNullOrEmpty(this string str)
{
return !string.IsNullOrEmpty(str);
}
4.数值扩展
/// <summary>
/// 指定数值保留固定位数小数。
/// </summary>
/// <param name="num">指定数值</param>
/// <param name="length">保留指定小数位数</param>
/// <param name="type">小于0舍去多余小数值,等于0四舍五入,大于0舍去多余小数值并向前一位进一</param>
/// <returns></returns>
public static double GetFix(this double num, int length = 2, int type = 0)
{
if (length <= 0)
{
return num;
}
double tempTransNum = Math.Pow(10, length);
num = num * tempTransNum;
if (type < 0)//向下取整(舍)
{
num = Math.Floor(num);
}
else if (type > 0)//向上取整(入)
{
num = Math.Ceiling(num);
}
else//四舍五入
{
num = Math.Round(num);
}
num = num / tempTransNum;
return num;
}
posted on 2017-06-29 12:04 走在前端·Miles 阅读(88) 评论(0) 收藏 举报
浙公网安备 33010602011771号