zoukankan      html  css  js  c++  java
  • .NET C# DateTime日期工具类

    1.工具类

    using System;
    using System.Globalization;

    namespace Infrastructure
    {
        public static class DateTimeExtensions
        {
            /// <summary>
            /// 当前时间
            /// </summary>
            public static DateTime CurrentDateTime = DateTime.Now;

            /// <summary>
            /// 本周周一
            /// </summary>
            public static DateTime StartWeek = CurrentDateTime.AddDays(1 - Convert.ToInt32(CurrentDateTime.DayOfWeek.ToString("d")));

            /// <summary>
            /// 本周周日
            /// </summary>
            public static DateTime EndWeek = StartWeek.AddDays(6);

            /// <summary>
            /// 本月月初
            /// </summary>
            public static DateTime StartMonth = CurrentDateTime.AddDays(1 - CurrentDateTime.Day);

            /// <summary>
            /// 本月月末
            /// </summary>
            public static DateTime EndMonth = StartMonth.AddMonths(1).AddDays(-1);

            /// <summary>
            /// 本季度初
            /// </summary>
            public static DateTime StartQuarter = CurrentDateTime.AddMonths(0 - (CurrentDateTime.Month - 1) % 3).AddDays(1 - CurrentDateTime.Day);

            /// <summary>
            /// 本季度末
            /// </summary>
            public static DateTime EndQuarter = StartQuarter.AddMonths(3).AddDays(-1);

            /// <summary>
            /// 本年年初
            /// </summary>
            public static DateTime StartYear = new DateTime(CurrentDateTime.Year, 1, 1);

            /// <summary>
            /// 本年年末
            /// </summary>
            public static DateTime EndYear = new DateTime(CurrentDateTime.Year, 12, 31);

            /// <summary>
            /// 计算本周的周一日期
            /// </summary>
            public static DateTime GetMondayDate()
            {
                return GetMondayDate(DateTime.Now);
            }

            /// <summary>
            /// 计算本周的周日日期
            /// </summary>
            public static DateTime GetSundayDate()
            {
                return GetSundayDate(DateTime.Now);
            }

            /// <summary>
            /// 计算某周起始日期(周一的日期)
            /// </summary>
            /// <param name="somedate">该周中任意一天</param>
            /// <returns>返回周一日期,后面的具体时、分、秒和传入值相等</returns>
            public static DateTime GetMondayDate(DateTime somedate)
            {
                int i = somedate.DayOfWeek - DayOfWeek.Monday;
                if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,sunday排在最前,此时sunday-monday=-1,必须+7=6。
                TimeSpan ts = new TimeSpan(i, 0, 0, 0);
                return somedate.Subtract(ts);
            }

            /// <summary>
            /// 计算某周结束日期(周日的日期)
            /// </summary>
            /// <param name="somedate">该周中任意一天</param>
            /// <returns>返回周日日期,后面的具体时、分、秒和传入值相等</returns>
            public static DateTime GetSundayDate(DateTime somedate)
            {
                int i = somedate.DayOfWeek - DayOfWeek.Sunday;
                if (i != 0) i = 7 - i;// 因为枚举原因,sunday排在最前,相减间隔要被7减。
                TimeSpan ts = new TimeSpan(i, 0, 0, 0);
                return somedate.Add(ts);
            }

            public static DateTime ToStartDate(this DateTime date)
            {
                var str = date.ToString("yyyy-MM-dd") + " 00:00:00";
                return DateTime.Parse(str);
            }
            public static DateTime ToStartDate(this DateTime date, string time)
            {
                var str = date.ToString("yyyy-MM-dd") + " " + time;
                return DateTime.Parse(str);
            }
            public static DateTime ToEndDate(this DateTime date)
            {
                var str = date.ToString("yyyy-MM-dd") + " 23:59:59";
                return DateTime.Parse(str);
            }
            public static DateTime ToEndDate(this DateTime date, string time)
            {
                var str = date.ToString("yyyy-MM-dd") + " " + time;
                return DateTime.Parse(str);
            }
            /// <summary>
            /// 将字符串"2016-05-12"转换为DateTime类型"2016-05-12 00:00:00"
            /// </summary>
            public static DateTime ToStartDate(string date)
            {
                DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo();
                dateTimeFormatInfo.ShortDatePattern = "yyyy-MM-dd";
                DateTime result = Convert.ToDateTime(date, dateTimeFormatInfo);
                return result.ToStartDate();
            }

            public static DateTime ToStartDate(string date, string time)
            {
                DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo();
                dateTimeFormatInfo.ShortDatePattern = "yyyy-MM-dd";
                DateTime result = Convert.ToDateTime(date, dateTimeFormatInfo);
                return result.ToStartDate(time);
            }

            /// <summary>
            /// 将字符串"2016-05-12"转换为DateTime类型"2016-05-12 23:59:59"
            /// </summary>
            public static DateTime ToEndDate(string date)
            {
                DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo();
                dateTimeFormatInfo.ShortDatePattern = "yyyy-MM-dd";
                DateTime result = Convert.ToDateTime(date, dateTimeFormatInfo);
                return result.ToEndDate();
            }
            public static DateTime ToEndDate(string date, string time)
            {
                DateTimeFormatInfo dateTimeFormatInfo = new DateTimeFormatInfo();
                dateTimeFormatInfo.ShortDatePattern = "yyyy-MM-dd";
                DateTime result = Convert.ToDateTime(date, dateTimeFormatInfo);
                return result.ToStartDate(time);
            }
        }
    }

  • 相关阅读:
    该伙伴事务管理器已经禁止了它对远程/网络事务的支持
    HDU 4883 TIANKENG’s restaurant (贪心)
    Android:创建可穿戴应用
    debian支持ll命令
    mongodb进阶一之高级查询
    Hadoop之——又一次格式化hdfs系统的方法
    J2EE的13个规范之(二) JDBC 及其使用
    2015欧冠决赛--脑力劳动结硕果
    运行计划之误区,为什么COST非常小,SQL却跑得非常慢?
    QVariant与自定义数据类型转换的方法
  • 原文地址:https://www.cnblogs.com/jeff151013/p/11739536.html
Copyright © 2011-2022 走看看