走在前端

小伙伴们,起来嗨~

 

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)    收藏  举报

导航