Example #1
0
        public static string ToString(this IPeriodic periodic, string format = null, bool numericFormat = false, bool longDefault = false)
        {
            switch (Frequency(periodic))
            {
            case PeriodicFrequency.Yearly:
                if (string.IsNullOrEmpty(format))
                {
                    return(periodic.Year.ToString());
                }
                break;

            case PeriodicFrequency.Monthly:
                if (string.IsNullOrEmpty(format))
                {
                    format        = longDefault ? "MMMM" : "MMM";
                    numericFormat = false;
                }
                break;

            case PeriodicFrequency.Weekly:
                if (string.IsNullOrEmpty(format))
                {
                    format        = longDefault ? "Week {2}" : "{2}";
                    numericFormat = true;
                }
                break;

            case PeriodicFrequency.Daily:
                if (string.IsNullOrEmpty(format))
                {
                    return(periodic.Day.ToString());
                }
                break;

            default:
                return(string.Empty);
            }

            if (numericFormat)
            {
                return(string.Format(format, periodic.Year, periodic.Month, periodic.Week, periodic.Day));
            }
            else
            {
                return(StartDate(periodic).ToString(format));
            }
        }
Example #2
0
        public static DateTime StartDate(this IPeriodic periodic)
        {
            switch (Frequency(periodic))
            {
            case PeriodicFrequency.Yearly:
                return(Dates.YearFirstDay(periodic.Year));

            case PeriodicFrequency.Monthly:
                return(Dates.MonthFirstDay(periodic.Year, periodic.Month));

            case PeriodicFrequency.Weekly:
                return(Dates.WeekFirstDay(periodic.Year, periodic.Week));

            case PeriodicFrequency.Daily:
                return(new DateTime(periodic.Year, periodic.Month, periodic.Day));

            default:
                return(new DateTime());
            }
        }
Example #3
0
        public static PeriodicFrequency Frequency(this IPeriodic periodic)
        {
            if (periodic == null || periodic.Year <= 0)
            {
                return(PeriodicFrequency.Unknown);
            }

            if (periodic.Month > 0)
            {
                return(PeriodicFrequency.Monthly);
            }

            if (periodic.Week > 0)
            {
                return(PeriodicFrequency.Weekly);
            }

            if (periodic.Day > 0)
            {
                return(PeriodicFrequency.Daily);
            }

            return(PeriodicFrequency.Yearly);
        }
Example #4
0
 public static bool IsDaily(this IPeriodic periodic) => Frequency(periodic) == PeriodicFrequency.Daily;
Example #5
0
 public static bool IsWeekly(this IPeriodic periodic) => Frequency(periodic) == PeriodicFrequency.Weekly;
Example #6
0
 public static bool IsMonthly(this IPeriodic periodic) => Frequency(periodic) == PeriodicFrequency.Monthly;
Example #7
0
 public static bool IsAnnual(this IPeriodic periodic) => Frequency(periodic) == PeriodicFrequency.Yearly;