/// <summary>
        /// Initializes a new instance of the <see cref="CalendarDay"/> class.
        /// </summary>
        /// <param name="year">The year.</param>
        /// <param name="monthOfYear">The month of the year.</param>
        /// <param name="dayOfMonth">The day of the month.</param>
        /// <exception cref="ArgumentOutOfRangeException"><paramref name="year"/> is less than 1 or greater than 9999.</exception>
        /// <exception cref="ArgumentException"><paramref name="monthOfYear"/> is invalid.</exception>
        /// <exception cref="ArgumentException"><paramref name="dayOfMonth"/> is invalid.</exception>
        /// <exception cref="ArgumentException"><paramref name="dayOfMonth"/> is not a valid day in the specified <paramref name="monthOfYear"/> and <paramref name="year"/>.</exception>
        public CalendarDay(
            int year,
            MonthOfYear monthOfYear,
            DayOfMonth dayOfMonth)
        {
            if ((year < 1) || (year > 9999))
            {
                throw new ArgumentOutOfRangeException(nameof(year), Invariant($"year ({year}) is less than 1 or greater than 9999"));
            }

            if (monthOfYear == MonthOfYear.Invalid)
            {
                throw new ArgumentException("month is invalid", nameof(monthOfYear));
            }

            if (dayOfMonth == DayOfMonth.Invalid)
            {
                throw new ArgumentException("day is invalid", nameof(dayOfMonth));
            }

            var totalDaysInMonth = DateTime.DaysInMonth(year, (int)monthOfYear);

            if ((int)dayOfMonth > totalDaysInMonth)
            {
                throw new ArgumentException(Invariant($"day ({dayOfMonth}) is not a valid day in the specified month ({monthOfYear}) and year ({year})"), nameof(dayOfMonth));
            }

            this.Year        = year;
            this.MonthOfYear = monthOfYear;
            this.DayOfMonth  = dayOfMonth;
        }
Ejemplo n.º 2
0
        public int CompareTo(GameDateTime other)
        {
            if (ReferenceEquals(other, null))
            {
                return(1);
            }

            if (Year != other.Year)
            {
                return(Year.CompareTo(other.Year));
            }
            if (Season != other.Season)
            {
                return(Season.CompareTo(other.Season));
            }
            if (DayOfMonth != other.DayOfMonth)
            {
                return(DayOfMonth.CompareTo(other.DayOfMonth));
            }
            if (TimeOfDay != other.TimeOfDay)
            {
                return(TimeOfDay.CompareTo(other.TimeOfDay));
            }

            return(0);
        }
Ejemplo n.º 3
0
            /// <summary>
            /// Converts the report object to a settings string.
            /// </summary>
            /// <returns>A string that contains the report configuration settings.</returns>
            public override string ToString()
            {
                XmlDocument doc = new XmlDocument();

                // Create the document root.
                XmlElement rootElement = doc.CreateElement("report");

                rootElement.SetAttribute("enabled", Enabled.ToString());
                doc.AppendChild(rootElement);

                // If reporting is enabled continue to build the string. Otherwise we're done.
                if (Enabled)
                {
                    // Create the frequency of the report generation.
                    XmlElement parent = doc.CreateElement("generate");
                    parent.SetAttribute("frequency", Frequency.ToString());
                    rootElement.AppendChild(parent);

                    // Create the time element.
                    XmlElement child = doc.CreateElement("time");
                    child.InnerText = TimeOfDay.ToString();
                    parent.AppendChild(child);

                    // Depending on the frequency type, the time parameters will be different.
                    switch (Frequency)
                    {
                    case ReportFrequency.Daily:
                        break;

                    case ReportFrequency.Weekly:
                        // Create the day of the week.
                        child           = doc.CreateElement("dayofweek");
                        child.InnerText = Weekday.ToString();
                        parent.AppendChild(child);
                        break;

                    case ReportFrequency.Monthly:
                        // Create the day of the month.
                        child           = doc.CreateElement("dayofmonth");
                        child.InnerText = DayOfMonth.ToString();
                        parent.AppendChild(child);
                        break;
                    }

                    // Create the report location information.
                    parent           = doc.CreateElement("location");
                    parent.InnerText = (IsiFolder) ? "ifolder" : "directory";
                    rootElement.AppendChild(parent);

                    // Create the report format.
                    parent           = doc.CreateElement("format");
                    parent.InnerText = Format.ToString();
                    rootElement.AppendChild(parent);
                }

                return(doc.InnerXml);
            }
        public CalendarDay DeepCloneWithDayOfMonth(DayOfMonth dayOfMonth)
        {
            var result = new CalendarDay(
                this.Year.DeepClone(),
                this.MonthOfYear.DeepClone(),
                dayOfMonth);

            return(result);
        }
Ejemplo n.º 5
0
        public void WriteXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            ele.TryPathTo("DayOfMonth", true, out subEle);
            subEle.Value = DayOfMonth.ToString();

            ele.TryPathTo("MonthsSince2001", true, out subEle);
            subEle.Value = MonthsSince2001.ToString();
        }
        public DayOfMonth Create(CreateDayOfMonthCommand command)
        {
            var day = new DayOfMonth(command.Day);

            day.Create();
            _repository.Create(day);

            if (Commit())
            {
                return(day);
            }

            return(null);
        }
Ejemplo n.º 7
0
        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = Name != null?Name.GetHashCode() : 0;

                hashCode = (hashCode * 397) ^ (Year != null ? Year.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Month != null ? Month.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Hours != null ? Hours.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Minutes != null ? Minutes.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (DayOfMonth != null ? DayOfMonth.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (DayOfWeek != null ? DayOfWeek.GetHashCode() : 0);
                return(hashCode);
            }
        }
Ejemplo n.º 8
0
        public override String ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(Minute.Trim());
            sb.Append(" ");
            sb.Append(Hour.Trim());
            sb.Append(" ");
            sb.Append(DayOfMonth.Trim());
            sb.Append(" ");
            sb.Append(Month.Trim());
            sb.Append(" ");
            sb.Append(DayOfWeek.Trim());
            return(sb.ToString());
        }
Ejemplo n.º 9
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Year != 0)
            {
                hash ^= Year.GetHashCode();
            }
            if (Month != 0)
            {
                hash ^= Month.GetHashCode();
            }
            if (DayOfMonth != 0)
            {
                hash ^= DayOfMonth.GetHashCode();
            }
            if (DayOfWeek != 0)
            {
                hash ^= DayOfWeek.GetHashCode();
            }
            if (Hour != 0)
            {
                hash ^= Hour.GetHashCode();
            }
            if (Minute != 0)
            {
                hash ^= Minute.GetHashCode();
            }
            if (Second != 0)
            {
                hash ^= Second.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CalendarDay"/> class.
        /// </summary>
        /// <param name="year">The year.</param>
        /// <param name="monthOfYear">The month of the year.</param>
        /// <param name="dayOfMonth">The day of the month.</param>
        /// <exception cref="ArgumentOutOfRangeException"><paramref name="year"/> is less than 1 or greater than 9999.</exception>
        /// <exception cref="ArgumentException"><paramref name="monthOfYear"/> is invalid.</exception>
        /// <exception cref="ArgumentException"><paramref name="dayOfMonth"/> is invalid.</exception>
        /// <exception cref="ArgumentException"><paramref name="dayOfMonth"/> is not a valid day in the specified <paramref name="monthOfYear"/> and <paramref name="year"/>.</exception>
        public CalendarDay(
            int year,
            MonthOfYear monthOfYear,
            DayOfMonth dayOfMonth)
        {
            if (year < 1)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(year)}' < '{1}'"), (Exception)null);
            }

            if (year > 9999)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(year)}' > '{9999}'"), (Exception)null);
            }

            if (monthOfYear == MonthOfYear.Invalid)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(monthOfYear)}' == '{MonthOfYear.Invalid}'"), (Exception)null);
            }

            if (dayOfMonth == DayOfMonth.Invalid)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(dayOfMonth)}' == '{DayOfMonth.Invalid}'"), (Exception)null);
            }

            var totalDaysInMonth = DateTime.DaysInMonth(year, (int)monthOfYear);

            if ((int)dayOfMonth > totalDaysInMonth)
            {
                throw new ArgumentException(Invariant($"day ({dayOfMonth}) is not a valid day in the specified month ({monthOfYear}) and year ({year})."), nameof(dayOfMonth));
            }

            this.Year        = year;
            this.MonthOfYear = monthOfYear;
            this.DayOfMonth  = dayOfMonth;
        }
        public string ToString(bool full, string dateSeparator = "/", string timeSeparator = ":")
        {
            var date = new StringBuilder();

            date.Append(full ? Year.ToString("####") : Year.ToString())
            .Append(dateSeparator)
            .Append(full ? Month.ToString("##") : Month.ToString())
            .Append(dateSeparator)
            .Append(full ? DayOfMonth.ToString("##") : DayOfMonth.ToString());

            var time = new StringBuilder();

            time.Append(full ? Hour.ToString("##") : Hour.ToString())
            .Append(timeSeparator)
            .Append(full ? Minute.ToString("##") : Minute.ToString());

            if (ShowTimeSecond)
            {
                time.Append(timeSeparator)
                .Append(full ? Second.ToString("##") : Second.ToString());
            }

            return(ShowTime ? $"{date} {time}" : $"{date}");
        }
        internal bool GetNextRecurDate(DateTime originDate, out DateTime nextDate)
        {
            if (!this.Recuring)
            {
                throw new InvalidOperationException();
            }

            if (this.ReccurPeriod == null)
            {
                throw new InvalidOperationException();
            }

            switch (ReccurPeriod.TimeUnit)
            {
            case ReccurPeriodTimeUnit.Daily:
                nextDate = originDate.Date.AddDays(ReccurPeriod.TimeUnitCount);
                return(!HasEndDate || nextDate <= EndDate);

            case ReccurPeriodTimeUnit.Weekly:
                nextDate = new DateTime();

                if (ActiveWeekDays.Count == 0)
                {
                    return(false);
                }

                // this week
                var day = originDate.Date;

                while (day.Date.AddDays(1).DayOfWeek > day.DayOfWeek)
                {
                    day = day.AddDays(1);

                    if (ActiveWeekDays.Contains(day.DayOfWeek))
                    {
                        nextDate = day;
                        return(!HasEndDate || nextDate <= EndDate);
                    }
                }

                const int daysInWeek = 7;
                //First day of next active week
                day = day.AddDays(1 + daysInWeek * (ReccurPeriod.TimeUnitCount - 1));

                do
                {
                    if (ActiveWeekDays.Contains(day.DayOfWeek))
                    {
                        nextDate = day;
                        return(!HasEndDate || nextDate <= EndDate);
                    }

                    day = day.AddDays(1);
                } while (day.DayOfWeek > day.AddDays(-1).DayOfWeek);

                Debug.Fail("");
                return(false);

            case ReccurPeriodTimeUnit.Monthly:
                nextDate = DayOfMonth.GetDateOfThisMonth(originDate);

                if (nextDate <= originDate)
                {
                    var nextMonth = DayOfMonthSettings.BeginingOfMonth(nextDate)
                                    .AddMonths(ReccurPeriod.TimeUnitCount);

                    nextDate = DayOfMonth.GetDateOfThisMonth(nextMonth);
                }
                return(!HasEndDate || nextDate <= EndDate);

            default:
                throw new Exception("Unforseen enum value");
            }
        }
Ejemplo n.º 13
0
 public void Update(DayOfMonth day)
 {
     _context.Entry <DayOfMonth>(day).State = EntityState.Modified;
 }
Ejemplo n.º 14
0
 public void Delete(DayOfMonth day)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 15
0
 public void Create(DayOfMonth day)
 {
     _context.DayOfMonth.Add(day);
 }
Ejemplo n.º 16
0
 public string ToLongString()
 {
     return(DayOfWeek + " " + DayOfMonth.ToString() + " " + MonthName + " " + Year.ToString());
 }
Ejemplo n.º 17
0
        public int CompareTo(Object o)
        {
            Day d = o as Day;

            return(DayOfMonth.CompareTo(d.DayOfMonth));
        }
Ejemplo n.º 18
0
 /// <summary>Overriden. Returns the hash code for this instance.</summary>
 /// <returns>The hash code for this instance.</returns>
 public override int GetHashCode()
 {
     return(Frequency.GetHashCode() ^ Interval.GetHashCode() ^ DaysOfWeekMask.GetHashCode() ^
            DayOfMonth.GetHashCode() ^ DayOrdinal.GetHashCode() ^ Month.GetHashCode());
 }
Ejemplo n.º 19
0
 public string ToShortString()
 {
     return(Year.ToString() + "/" + (Month < 10 ? "0" + Month.ToString() : Month.ToString()) + "/" + (DayOfMonth < 10 ? "0" + DayOfMonth.ToString() : DayOfMonth.ToString()));
 }
Ejemplo n.º 20
0
 public override int GetHashCode()
 {
     return(DayOfMonth.GetHashCode() ^ MaxTemp.GetHashCode() ^ MinTemp.GetHashCode());
 }
Ejemplo n.º 21
0
 // This form will be used in JSON.
 public override string ToString() => DayOfMonth.ToString();
Ejemplo n.º 22
0
 public void RemoveDay(MonthOfYear monthOfYear, DayOfMonth dayOfMonth)
 {
     if (months[monthOfYear].Contains(dayOfMonth))
         months[monthOfYear].Remove(dayOfMonth);
 }
Ejemplo n.º 23
0
 public void AddDay(MonthOfYear monthOfYear, DayOfMonth dayOfMonth)
 {
     //must do some validation here
     if (!months[monthOfYear].Contains(dayOfMonth))
         months[monthOfYear].Add(dayOfMonth);
 }
Ejemplo n.º 24
0
 public void SetDayOfMonth(DayOfMonth dayOfMonth, bool value)
 {
     daysOfMonth.Set((int)dayOfMonth, value);
 }
        public static bool IsKindDayOfMonth(this DateTimeOffset dateTime, DayOfMonth dayOfMonth, DayOfKind dayOfKind)
        {
            switch (dayOfMonth)
            {
            case DayOfMonth.First:
                return(IsFirstKindDayOfMonth(dateTime, dayOfKind));

            case DayOfMonth.Second:
                return(IsSecondKindDayOfMonth(dateTime, dayOfKind));

            case DayOfMonth.Third:
                return(IsThirdKindDayOfMonth(dateTime, dayOfKind));

            case DayOfMonth.Fourth:
                return(IsFourthKindDayOfMonth(dateTime, dayOfKind));

            case DayOfMonth.Fifth:
            case DayOfMonth.Sixth:
            case DayOfMonth.Seventh:
            case DayOfMonth.Eighth:
            case DayOfMonth.Ninth:
            case DayOfMonth.Tenth:
            case DayOfMonth.Eleventh:
            case DayOfMonth.Twelfth:
            case DayOfMonth.Thirteenth:
            case DayOfMonth.Fourteenth:
            case DayOfMonth.Fifteenth:
            case DayOfMonth.Sixteenth:
            case DayOfMonth.Seventeenth:
            case DayOfMonth.Eighteenth:
            case DayOfMonth.Nineteenth:
            case DayOfMonth.Twentieth:
            case DayOfMonth.TwentyFirst:
            case DayOfMonth.TwentySecond:
            case DayOfMonth.TwentyThird:
            case DayOfMonth.TwentyFourth:
            case DayOfMonth.TwentyFifth:
            case DayOfMonth.TwentySixth:
            case DayOfMonth.TwentySeventh:
            case DayOfMonth.TwentyEighth:
            case DayOfMonth.TwentyNineth:
            case DayOfMonth.Thirtieth:
            case DayOfMonth.ThirtyFirst:
            {
                if (dayOfKind != DayOfKind.Day)
                {
                    throw new InvalidProgramException("Does not support given kind of day.");
                }

                int day = (int)dayOfMonth;
                return(dateTime.Day == day);
            }

            case DayOfMonth.Last:
                return(IsLastKindDayOfMonth(dateTime, dayOfKind));

            default:
                break;
            }

            throw new InvalidProgramException("Cannot parse the given month and day.");
        }
 public override void Configure(ScheduleSettings settings, bool preConfigured)
 {
     if (!preConfigured)
     {
         _typedSettings = Upcaster.ToDerived<ScheduleSettings, RecurringScheduleSettings>(settings);
         _dayOfMonth = _typedSettings.DayOfMonth;
         _dateRange = _typedSettings.DateRange;
         base.Configure(_typedSettings, true);
     }
     else
     {
         _typedSettings = settings as RecurringScheduleSettings;
         _dayOfMonth = _typedSettings.DayOfMonth;
         _dateRange = _typedSettings.DateRange;
         base.Configure(settings, true);
     }
 }