Example #1
0
        /// <summary>
        ///     Set the year part
        /// </summary>
        /// <param name="yearPart"></param>
        private void SetYearPart(string yearPart)
        {
            if (string.IsNullOrEmpty(yearPart))
            {
                throw new ArgumentNullException(nameof(yearPart));
            }
            var provider = new MilDateFormatProvider();
            int year;

            if (yearPart.Length == 2)
            {
                // Adheres to current regional settings as defined in Control Panel (or group policy):
                // When a two-digit year is entered, interpret it as a year between 1970 and 2069.
                year = CultureInfo.CurrentCulture.Calendar.ToFourDigitYear(Convert.ToInt32(yearPart, provider));
            }
            else if (yearPart.Length == 4)
            {
                year = Convert.ToInt32(yearPart, provider);
            }
            else
            {
                year = 0;
            }
            Year = year;
        }
Example #2
0
        /// <summary>
        ///     Set the day, hour, minute, and second values to be used on DateTime.
        /// </summary>
        /// <param name="dayTimePart"></param>
        private void SetDayHourMinuteSecond(string dayTimePart)
        {
            if (string.IsNullOrEmpty(dayTimePart))
            {
                throw new ArgumentNullException(nameof(dayTimePart));
            }

            int day = 0, hour = 0, minute = 0, second = 0;
            var provider = new MilDateFormatProvider();

            if (dayTimePart.Length % 2 == 0)
            {
                var parts = dayTimePart.SplitInParts(2);

                /*
                 * There are day and time values
                 */
                var enumerable = parts.ToList();
                if (enumerable.Count == 1)
                {
                    day = Convert.ToInt32(enumerable.First(), provider);
                }
                else if (enumerable.Count == 2)
                {
                    day  = Convert.ToInt32(enumerable.First(), provider);
                    hour = Convert.ToInt32(enumerable.Last(), provider);
                }
                else if (enumerable.Count == 3)
                {
                    day    = Convert.ToInt32(enumerable.First(), provider);
                    hour   = Convert.ToInt32(enumerable.ElementAt(1), provider);
                    minute = Convert.ToInt32(enumerable.Last(), provider);
                }
                else if (enumerable.Count == 4)
                {
                    day    = Convert.ToInt32(enumerable.First(), provider);
                    hour   = Convert.ToInt32(enumerable.ElementAt(1), provider);
                    minute = Convert.ToInt32(enumerable.ElementAt(2), provider);
                    second = Convert.ToInt32(enumerable.Last(), provider);
                }
            }

            Day    = day > 31 || day < 0 ? 0 : day;
            Hour   = hour > 24 || hour < 0 ? 0 : hour;
            Minute = minute > 60 || minute < 0 ? 0 : minute;
            Second = second > 60 || second < 0 ? 0 : second;
        }