Exemplo n.º 1
0
        /// <summary>
        /// 根据日期获取当前季度第一天的DateTime
        /// </summary>
        public static DateTime GetCurQuarterBegin(this DateTime source)
        {
            List <int> quarterBeginMonth = new List <int> {
                1, 4, 7, 10
            };

            if (quarterBeginMonth.Contains(source.Month))
            {
                return(GetCurMonthFirst(source));
            }
            else
            {
                int month = quarterBeginMonth[source.GetQuarter() - 1];
                return(new DateTime(source.Year, month, 1));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取指定日期的季度第1天日期
        /// </summary>
        /// <param name="dateTime">日期时间</param>
        /// <returns>日期的季度第1天日期</returns>
        public static DateTime QuarterFirstDay(this DateTime dateTime)
        {
            switch (dateTime.GetQuarter())
            {
            case 0:
                return(new DateTime(dateTime.Year, 1, 1));

            case 1:
                return(new DateTime(dateTime.Year, 4, 1));

            case 2:
                return(new DateTime(dateTime.Year, 7, 1));

            default:
                return(new DateTime(dateTime.Year, 10, 1));
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取指定日期的季度最后1天日期
        /// </summary>
        /// <param name="dateTime">日期时间</param>
        /// <returns>日期的季度最后1天日期</returns>
        public static DateTime QuarterLastDay(this DateTime dateTime)
        {
            switch (dateTime.GetQuarter())
            {
            case 0:
                return(new DateTime(dateTime.Year, 3, 31, 23, 59, 59, 999));

            case 1:
                return(new DateTime(dateTime.Year, 6, 30, 23, 59, 59, 999));

            case 2:
                return(new DateTime(dateTime.Year, 9, 30, 23, 59, 59, 999));

            default:
                return(new DateTime(dateTime.Year, 12, 31, 23, 59, 59, 999));
            }
        }
        static void Main(string[] args)
        {
            var date = new DateTime(2015, 10, 5);
            var curQ = 0;

            for (Int32 i = 1; i <= 52; i++)
            {
                var newQ = date.GetQuarter();
                if(curQ != newQ)
                {
                    curQ = newQ;
                    Console.WriteLine($"I\\{date.Year}.{curQ:D2}|{date.GetQuarterStart().ToShortDateString()}|{date.GetQuarterEnd().ToShortDateString()}");
                }
                                
                Console.WriteLine($"I\\{date.Year}.{curQ:D2}\\{date.Year}.{curQ:D2}-{date.GetWeekNum():D2}|{date.ToShortDateString()}|{date.AddDays(6).ToShortDateString()}");
                date = date.AddDays(7);
            }
        }
 /// <summary>
 /// Extension method used to compare two dates and their respective quarters.
 /// </summary>
 /// <param name="initialDate">The DateTime variable that will utilize the 
 /// extension method.</param>
 /// <param name="dateToCompare">The DateTime value to compare against.</param>
 /// <returns>True if both dates are within the same quarter; false if they are not.</returns>
 public static bool CompareQuarter(this DateTime initialDate, DateTime dateToCompare)
 {
     return initialDate.GetQuarter() == dateToCompare.GetQuarter();
 }