private void SetStartEndDates(ParsedResult result, DateTime date, DateTime reference) { ParsedComponents pivot = null; ParsedComponents node = null; result.End = result.End ?? result.Start.Clone() as ParsedComponents; if (Config.Direction == DateTimeDirection.Backward) { pivot = result.End; node = result.Start; } else { pivot = result.Start; node = result.End; } pivot.Imply("year", reference.Year); pivot.Imply("month", reference.Month); pivot.Imply("day", reference.Day); pivot.Imply("hour", reference.Hour); pivot.Imply("minute", reference.Minute); pivot.Imply("second", reference.Second); node.Imply("year", date.Year); node.Imply("month", date.Month); node.Imply("day", date.Day); node.Imply("hour", date.Hour); node.Imply("minute", date.Minute); node.Imply("second", date.Second); result.Tags[this.GetType().Name] = true; }
public object Clone() { ParsedComponents pc = (ParsedComponents)this.MemberwiseClone(); pc.knownValues = new Dictionary <string, int>(this.knownValues); pc.impliedValues = new Dictionary <string, int>(this.impliedValues); return(pc); }
public ParsedResult(TemporalResult result) { result = result ?? new TemporalResult(); Reference = result.Reference; Index = result.Index; Text = result.Text; Tags = result.Tags; Start = new ParsedComponents(result.Start, result.Reference); if (result.End != null) { End = new ParsedComponents(result.End, result.Reference); } }