Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="text"></param>
        /// <param name="roundUp"></param>
        /// <param name="timezone"></param>
        /// <returns></returns>
        public static DateTime?ToDateTime(string text,
                                          bool?roundUp = null, Timezone timezone = Timezone.Browser)
        {
            if (string.IsNullOrEmpty(text) || text.Length < NOW.Length)
            {
                return(null);
            }

            if (DateTimeMathParser.IsDateTime(text, out DateTime absTime))
            {
                return(absTime);
            }

            DateTime time       = DateTime.Now;
            var      mathString = string.Empty;
            var      index      = 0;

            if (text.Substring(0, NOW.Length) == NOW)
            {
                time       = timezone == Timezone.UTC ? DateTime.UtcNow : DateTime.Now;
                mathString = text.Substring(NOW.Length);
            }
            else
            {
                index = text.IndexOf("||");
                var parseString = string.Empty;

                if (-1 == index)
                {
                    parseString = text;
                    mathString  = string.Empty;
                }
                else
                {
                    parseString = text.Substring(0, index);
                    mathString  = text.Substring(index + 2);
                }

                // We're going to just require ISO8601 timestamps, k?
                //time = this.dateTime( parseString, ISO_8601 );
                //??
                return(null);
            }

            return(ShiftDateTime(mathString, time, roundUp));
        }
Beispiel #2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="text"></param>
 /// <returns></returns>
 private static bool IsDateTime(string text) => DateTimeMathParser.IsDateTime(text);