zoukankan      html  css  js  c++  java
  • Date、DateTime值的格式化扩展函数

    public static class DateTimeExtensions
        {
            public static DateTime ToUtc(this DateTime time)
            {
                if (time.Kind == DateTimeKind.Utc)
                {
                    return time;
                }
                else if (time.Kind == DateTimeKind.Local)
                {
                    return time.ToUniversalTime();
                }
                else
                {
                    return time.ToLocalTime().ToUniversalTime();
                }
            }


            private static readonly DateTime s_maxDateTime = new DateTime(4000, 1, 1, 1, 1, 1, 1).ToUtc();
            public static DateTime MaxDateTime
            {
                get
                {
                    return s_maxDateTime;
                }
            }

            public static bool IsMaxDateTime(this DateTime time)
            {
                return time.Year == MaxDateTime.Year;
            }

            public static DateTime? ToUtc(this DateTime? time)
            {
                return time.HasValue ? (DateTime?)time.Value.ToUtc() : null;
            }

            public static string ToChineseDate(this DateTime time)
            {
                return time.ToString("yyyy-MM-dd");
            }

            public static string ToChineseDate(this DateTime? time)
            {
                if (!time.HasValue)
                    return string.Empty;
                return time.Value.ToString("yyyy-MM-dd");
            }

            public static string ToChineseTime(this DateTime time)
            {
                return time.ToString("yyyy-MM-dd HH:mm");
            }

            /// <summary>
            /// 转换成时间戳
            /// </summary>
            /// <param name="time"></param>
            /// <returns></returns>
            public static Int64 ToTimestamp(this DateTime time)
            {
                return (time.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
            }

            public static string ToExpireString(this DateTime time)
            {
                var now = DateTime.Now;
                if (now < time)
                    return string.Empty;

                var offset = (now - time);

                if (offset < new TimeSpan(0, 1, 0))
                {
                    return "刚刚";
                }
                else if (offset < new TimeSpan(1, 0, 0))
                {
                    return string.Format("{0}分钟", offset.Minutes);
                }
                else if (offset < new TimeSpan(1, 0, 0, 0))
                {
                    return string.Format("{0}小时", offset.Hours);
                }
                else if (offset < new TimeSpan(7, 0, 0, 0))
                {
                    return string.Format("{0}天", offset.Days);
                }
                else if (offset < new TimeSpan(30, 0, 0, 0))
                {
                    return string.Format("{0}周", offset.Days / 7);
                }
                else if (offset < new TimeSpan(365, 0, 0, 0))
                {
                    return string.Format("{0}个月", offset.Days / 30);
                }
                else
                {
                    return time.ToChineseTime();
                }
            }

            public static DateTime GetThisMonday(this DateTime value)
            {
                int dayofWeek = value.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)value.DayOfWeek;
                return value.Date.AddDays((int)DayOfWeek.Monday - dayofWeek);
            }

            public static DateTime GetTheMinTime(this DateTime time)
            {
                return DateTime.Parse(time.ToShortDateString() + " 00:00:00");
            }

            public static DateTime GetTheMaxTime(this DateTime time)
            {
                return DateTime.Parse(time.ToShortDateString() + " 23:59:59");
            }

            public static string HtmlEncode(this DateTime value, string format)
            {
                return value.ToString(format).HtmlEncode();
            }

            public static string HtmlAttrEncode(this DateTime value, string format)
            {
                return value.ToString(format).HtmlAttrEncode();
            }

            public static string UrlEncode(this DateTime value, string format)
            {
                return value.ToString(format).UrlEncode();
            }
        }

  • 相关阅读:
    SQL SERVER 全文索引分词
    Json官方介绍
    SQL Try Catch(转载http://www.cnblogs.com/jimmyray/archive/2011/08/02/2125069.html)
    SQL函数记录
    SQL事务处理代码(SQL Server 2000 & 2005)
    SQL通用分页存储过程
    [导入]SoapExtension 1.0 的问题与解决
    BugTracker.NET 汉化手札
    [导入]我对J2EE和.NET的一点理解
    PostgreSQL 8.0.2 应用报告
  • 原文地址:https://www.cnblogs.com/itjeff/p/5593374.html
Copyright © 2011-2022 走看看