Example #1
0
        /// <summary>
        /// 取得指定月份週數。
        /// </summary>
        /// <param name="year">年份。</param>
        /// <param name="month">月份。</param>
        public static int WeeksInMonth(int year, int month)
        {
            DateTime oDate;
            int      iDays;

            // 取得該月最後一天,並判斷日期為該月的第幾週
            iDays = DateFunc.DaysInMonth(year, month);
            oDate = new DateTime(year, month, iDays);
            return(GetWeekOfYear(oDate));
        }
Example #2
0
        /// <summary>
        /// 以指定日期為基準,取得指定範圍的日期區間。
        /// </summary>
        /// <param name="value">指定日期。</param>
        /// <param name="unit">日期單位。</param>
        /// <param name="startDate">傳出起始日期。</param>
        /// <param name="endDate">傳出終止日期。</param>
        public static void GetDateRange(DateTime value, EDateUnit unit, out DateTime startDate, out DateTime endDate)
        {
            int iWeekday;
            int iDaysOfMonth;

            startDate = DateTime.MinValue;
            endDate   = DateTime.MinValue;
            switch (unit)
            {
            case EDateUnit.Day:
                startDate = value;
                endDate   = value;
                break;

            case EDateUnit.Week:
                iWeekday  = Weekday(value);
                startDate = value.AddDays(iWeekday * -1);       //取得該週的第一天
                endDate   = value.AddDays(7 - iWeekday);        //取得該週的最後一天
                break;

            case EDateUnit.Month:
                iDaysOfMonth = DateFunc.DaysInMonth(value);
                startDate    = new DateTime(value.Year, value.Month, 1);            //取得該月的第一天
                endDate      = new DateTime(value.Year, value.Month, iDaysOfMonth); //取得該月的最後一天
                break;

            case EDateUnit.Quarter:
                GetQuarterRange(value, out startDate, out endDate);
                break;

            case EDateUnit.Year:
                startDate = new DateTime(value.Year, 1, 1);     //取得該年度的第一天
                endDate   = new DateTime(value.Year, 12, 31);   //取得該年度的最後一天
                break;
            }
        }