Example #1
0
        public void ExtractSingle()
        {
            IEnumerable <DateTime> x = DateTimeExtractor.Extract("Wake me up seven thirty tomorrow");
            DateTime dt = x.First();

            Assert.AreEqual(
                DateTime.Now.Date.AddDays(1).AddHours(7).AddMinutes(30),
                new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second));
        }
Example #2
0
 public IEnumerable <DateTime> Get(string s, string dt)
 {
     return(DateTimeExtractor.Extract(
                s,
                DateTime.ParseExact(dt,
                                    "s",
                                    CultureInfo.InvariantCulture,
                                    DateTimeStyles.None)));
 }
Example #3
0
        public void ExtractWord()
        {
            IEnumerable <DateTime> x = DateTimeExtractor.Extract("Tomorrow");
            DateTime dt  = x.First();
            DateTime ans = DateTime.Now.AddDays(1);

            Assert.AreEqual(
                new DateTime(ans.Year, ans.Month, ans.Day, ans.Hour, ans.Minute, ans.Second),
                new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second));
        }
Example #4
0
        public void ExtractDoubleNumeric()
        {
            IEnumerable <DateTime> x = DateTimeExtractor.Extract("Wake me up 7:30 tomorrow morning and 3:00 tomorrow afternoon");
            DateTime dt  = x.First();
            DateTime dt2 = x.Skip(1).First();

            Assert.AreEqual(
                DateTime.Now.Date.AddDays(1).AddHours(7).AddMinutes(30),
                new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second));
            Assert.AreEqual(
                DateTime.Now.Date.AddDays(1).AddHours(15),
                new DateTime(dt2.Year, dt2.Month, dt2.Day, dt2.Hour, dt2.Minute, dt2.Second));
        }
Example #5
0
 static void Main(string[] args)
 {
     while (true)
     {
         Console.Write("{0}: Your message > ", DateTime.Now.ToString("yyyy/MM/dd HH:mm"));
         string s = Console.ReadLine();
         foreach (DateTime dt in DateTimeExtractor.Extract(s))
         {
             Console.WriteLine("Found {0}", dt.ToString("yyyy/MM/dd HH:mm"));
         }
         Console.WriteLine();
     }
 }
Example #6
0
        /// <summary>
        /// Why do we have a public constructor here and why isn't this class an enum?
        /// It's because the array extractors can be configured with an array delimiter,
        /// something that would be impossible otherwise. There's an equivalent <seealso cref="valueOf(string)"/>
        /// method to keep the feel of an enum.
        /// </summary>
        public Extractors(char arrayDelimiter, bool emptyStringsAsNull, bool trimStrings, System.Func <ZoneId> defaultTimeZone)
        {
            try
            {
                foreach (System.Reflection.FieldInfo field in this.GetType().GetFields(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance))
                {
                    if (isStatic(field.Modifiers))
                    {
                        object value = field.get(null);
                        if (value is Extractor)
                        {
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: instances.put(field.getName(), (Extractor<?>) value);
                            _instances[field.Name] = (Extractor <object>)value;
                        }
                    }
                }

                Add(@string        = new StringExtractor(emptyStringsAsNull));
                Add(_long_         = new LongExtractor());
                Add(_int_          = new IntExtractor());
                Add(_char_         = new CharExtractor());
                Add(_short_        = new ShortExtractor());
                Add(_byte_         = new ByteExtractor());
                Add(_boolean_      = new BooleanExtractor());
                Add(_float_        = new FloatExtractor());
                Add(_double_       = new DoubleExtractor());
                Add(_stringArray   = new StringArrayExtractor(arrayDelimiter, trimStrings));
                Add(_booleanArray  = new BooleanArrayExtractor(arrayDelimiter));
                Add(_byteArray     = new ByteArrayExtractor(arrayDelimiter));
                Add(_shortArray    = new ShortArrayExtractor(arrayDelimiter));
                Add(_intArray      = new IntArrayExtractor(arrayDelimiter));
                Add(_longArray     = new LongArrayExtractor(arrayDelimiter));
                Add(_floatArray    = new FloatArrayExtractor(arrayDelimiter));
                Add(_doubleArray   = new DoubleArrayExtractor(arrayDelimiter));
                Add(_point         = new PointExtractor());
                Add(_date          = new DateExtractor());
                Add(_time          = new TimeExtractor(defaultTimeZone));
                Add(_dateTime      = new DateTimeExtractor(defaultTimeZone));
                Add(_localTime     = new LocalTimeExtractor());
                Add(_localDateTime = new LocalDateTimeExtractor());
                Add(_duration      = new DurationExtractor());
            }
            catch (IllegalAccessException)
            {
                throw new Exception("Bug in reflection code gathering all extractors");
            }
        }