private static List <Resolution.Entry> ResolveDateTimeRange(TimexProperty timex) { if (timex.PartOfDay != null) { var date = TimexValue.DateValue(timex); var timeRange = PartOfDayTimeRange(timex); return(new List <Resolution.Entry> { new Resolution.Entry { Timex = timex.TimexValue, Type = "datetimerange", Start = $"{date} {timeRange.Item1}", End = $"{date} {timeRange.Item2}", }, }); } else { var range = TimexHelpers.ExpandDateTimeRange(timex); return(new List <Resolution.Entry> { new Resolution.Entry { Timex = timex.TimexValue, Type = "datetimerange", Start = $"{TimexValue.DateValue(range.Start)} {TimexValue.TimeValue(range.Start)}", End = $"{TimexValue.DateValue(range.End)} {TimexValue.TimeValue(range.End)}", }, }); } }
public static string Format(TimexProperty timex) { var types = timex.Types.Count != 0 ? timex.Types : TimexInference.Infer(timex); if (types.Contains(Constants.TimexTypes.Present)) { return("PRESENT_REF"); } if ((types.Contains(Constants.TimexTypes.DateTimeRange) || types.Contains(Constants.TimexTypes.DateRange) || types.Contains(Constants.TimexTypes.TimeRange)) && types.Contains(Constants.TimexTypes.Duration)) { var range = TimexHelpers.ExpandDateTimeRange(timex); return($"({Format(range.Start)},{Format(range.End)},{Format(range.Duration)})"); } if (types.Contains(Constants.TimexTypes.DateTimeRange)) { return($"{FormatDate(timex)}{FormatTimeRange(timex)}"); } if (types.Contains(Constants.TimexTypes.DateRange)) { return($"{FormatDateRange(timex)}"); } if (types.Contains(Constants.TimexTypes.TimeRange)) { return($"{FormatTimeRange(timex)}"); } if (types.Contains(Constants.TimexTypes.DateTime)) { return($"{FormatDate(timex)}{FormatTime(timex)}"); } if (types.Contains(Constants.TimexTypes.Duration)) { return($"{FormatDuration(timex)}"); } if (types.Contains(Constants.TimexTypes.Date)) { return($"{FormatDate(timex)}"); } if (types.Contains(Constants.TimexTypes.Time)) { return($"{FormatTime(timex)}"); } return(string.Empty); }
private static List <Resolution.Entry> ResolveDefiniteDateRange(TimexProperty timex, DateObject date) { var range = TimexHelpers.ExpandDateTimeRange(timex); return(new List <Resolution.Entry> { new Resolution.Entry { Timex = timex.TimexValue, Type = "daterange", Start = TimexValue.DateValue(range.Start), End = TimexValue.DateValue(range.End), }, }); }
private static List <Resolution.Entry> ResolveDateTimeRange(TimexProperty timex, DateObject date) { if (timex.PartOfDay != null) { var dateValues = GetDateValues(timex, date); var timeRange = PartOfDayTimeRange(timex); var result = new List <Resolution.Entry> { }; foreach (string dateValue in dateValues) { result.Add( new Resolution.Entry { Timex = timex.TimexValue, Type = "datetimerange", Start = TimexHelpers.FormatResolvedDateValue(dateValue, timeRange.Item1), End = TimexHelpers.FormatResolvedDateValue(dateValue, timeRange.Item2), }); } return(result); } else { var range = TimexHelpers.ExpandDateTimeRange(timex); var startDateValues = GetDateValues(range.Start, date); var endDateValues = GetDateValues(range.End, date); var result = new List <Resolution.Entry> { }; foreach (var dateRange in startDateValues.Zip(endDateValues, (n, w) => new { start = n, end = w })) { result.Add( new Resolution.Entry { Timex = timex.TimexValue, Type = "datetimerange", Start = TimexHelpers.FormatResolvedDateValue(dateRange.start, TimexValue.TimeValue(range.Start, date)), End = TimexHelpers.FormatResolvedDateValue(dateRange.end, TimexValue.TimeValue(range.End, date)), }); } return(result); } }