Example #1
0
        private static DateTime GetComparisonDate(DateTime dateComparison, EDateUnit unit, int isAfter)
        {
            DateTime newComparisonDate;

            switch (unit)
            {
            case (EDateUnit.Year):
                newComparisonDate = dateComparison.AddYears(isAfter);
                break;

            case (EDateUnit.Month):
                newComparisonDate = dateComparison.AddMonths(isAfter);
                break;

            case (EDateUnit.Day):
                newComparisonDate = dateComparison.AddDays(isAfter);
                break;

            default:
                throw new Exception("No unit specifed");
            }

            return(newComparisonDate);
        }
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;
            }
        }
Example #3
0
 /// <summary>
 /// 取得日期變數值。
 /// </summary>
 /// <param name="dateTimeUnit">日期單位。</param>
 private string GetDateVariable(EDateUnit dateTimeUnit)
 {
     DateFunc.GetDateRange(DateTime.Now, dateTimeUnit, out DateTime oStartDate, out DateTime oEndTime);
     return(StrFunc.StrFormat("{0},{1}", oStartDate.ToString("yyyy/MM/dd"), oEndTime.ToString("yyyy/MM/dd")));
 }