Ejemplo n.º 1
0
        public static DateTimeOffset ParseDateTime(string key, DateTimeKeyFlags flags)
        {
            DateTimeOffset dateTime;

            if (!TryParseDateTime(key, flags, out dateTime))
            {
                throw new Exception($"Unable to parse key: {key}");
            }

            return(dateTime);
        }
Ejemplo n.º 2
0
        public static bool TryParseDateTimeKey(string key, DateTimeKeyFlags flags, DateTimeKey dateTimeKey)
        {
            DateTimeOffset dateTime;

            if (!TryParseDateTime(key, flags, out dateTime))
            {
                return(false);
            }

            dateTimeKey = new DateTimeKey(dateTime, flags);
            return(true);
        }
Ejemplo n.º 3
0
        public static bool TryParseDateTime(string key, DateTimeKeyFlags flags, out DateTimeOffset dateTime)
        {
            var hours   = DateTimeKeyFlags.Hours == (flags & DateTimeKeyFlags.Hours);
            var minutes = DateTimeKeyFlags.Minutes == (flags & DateTimeKeyFlags.Minutes);

            var provider = CultureInfo.InvariantCulture;

            if (flags == DateTimeKeyFlags.Date)
            {
                return(DateTimeOffset.TryParseExact(key, "yyyyMMdd", provider, DateTimeStyles.AdjustToUniversal, out dateTime));
            }
            else
            {
                return(DateTimeOffset.TryParseExact(key, @"yyyyMMdd\THHmm", provider, DateTimeStyles.AdjustToUniversal, out dateTime));
            }
        }
Ejemplo n.º 4
0
        public static string GetKey(DateTimeOffset dateTime, DateTimeKeyFlags flags)
        {
            var builder = new StringBuilder();

            if (DateTimeKeyFlags.Date == (flags & DateTimeKeyFlags.Date))
            {
                builder.Append(dateTime.Year.ToString("0000"));
                builder.Append(dateTime.Month.ToString("00"));
                builder.Append(dateTime.Day.ToString("00"));
            }

            var hours   = DateTimeKeyFlags.Hours == (flags & DateTimeKeyFlags.Hours);
            var minutes = DateTimeKeyFlags.Minutes == (flags & DateTimeKeyFlags.Minutes);

            if (hours || minutes)
            {
                builder.Append("T");
                builder.Append(hours ? dateTime.Hour.ToString("00") : "00");
                builder.Append(minutes ? dateTime.Minute.ToString("00") : "00");
            }

            return(builder.ToString());
        }
Ejemplo n.º 5
0
        public static DateTimeKey ParseDateTimeKey(string key, DateTimeKeyFlags flags)
        {
            var dateTime = ParseDateTime(key, flags);

            return(new DateTimeKey(dateTime, flags));
        }
Ejemplo n.º 6
0
 public DateTimeKey(DateTimeOffset dateTime, DateTimeKeyFlags flags)
 {
     Key   = GetKey(dateTime, flags);
     Flags = flags;
 }