public void ParseTest() { // yyyy-MM-dd var dateString = "2012-01-02"; var period = DayPeriod.Parse(dateString); Assert.AreEqual(2012, period.Value.Year); Assert.AreEqual(1, period.Value.Month); Assert.AreEqual(2, period.Value.Day); Assert.AreEqual(dateString, period.ToString()); }
private static Daily ParseDaily(PropertyDictionary properties, PropertyDescriptionDictionary descriptions) { var period = DayPeriod.Parse(properties.Get(PropertyNames.Day)); return(Daily.Create( properties.Get(PropertyNames.Ticker), period, properties, descriptions )); }
public static ITickerPeriodParameter Create(string ticker, string periodParam, FiscalQuarterPeriod latestFiscalQuarterPeriod) { if (periodParam.Equals("latest")) { return(TickerDayParameter.Create(ticker, LatestDayPeriod.GetInstance())); } else if (PeriodRegularExpressionConfig.DayRegex.IsMatch(periodParam)) { return(TickerDayParameter.Create(ticker, DayPeriod.Parse(periodParam))); } else if (PeriodRegularExpressionConfig.FiscalQuarterRegex.IsMatch(periodParam)) { var period = FiscalQuarterPeriod.Parse(periodParam); return(TickerQuarterParameter.Create(ticker, period)); } else if (PeriodRegularExpressionConfig.RelativeFiscalQuarterRegex.IsMatch(periodParam)) { var period = RelativeFiscalQuarterPeriod.Parse(periodParam); return(TickerQuarterParameter.Create(ticker, period)); } else if (PeriodRegularExpressionConfig.BCodeUdfFiscalQuarterInputRegex.IsMatch(periodParam)) { var match = PeriodRegularExpressionConfig.BCodeUdfFiscalQuarterInputRegex .Match(periodParam); var fy = match.Groups["fiscalYear"].Value.Trim(); var fq = match.Groups["fiscalQuarter"].Value.Trim(); if (fy.Contains("LY")) { var prevYears = RelativeFiscalQuarterPeriod.ParseRelativeValue("years", match); if (prevYears > latestFiscalQuarterPeriod.Year) { throw new ValidationError($"{prevYears} is bigger than {latestFiscalQuarterPeriod.Year}"); } var fiscalQuarter = fq.Replace("Q", ""); var period = FiscalQuarterPeriod.Create(latestFiscalQuarterPeriod.Year - prevYears, uint.Parse(fiscalQuarter)); return(TickerQuarterParameter.Create(ticker, fy, fiscalQuarter, period)); } else if (fq.Contains("LQ")) { var prevQuarters = RelativeFiscalQuarterPeriod.ParseRelativeValue("quarters", match); var period = FiscalQuarterPeriod.Create(uint.Parse(fy), latestFiscalQuarterPeriod.Quarter).Before(0, prevQuarters); return(TickerQuarterParameter.Create(ticker, fy, fq, period)); } else { throw new ValidationError($"{periodParam} is not supported input format"); } } else { throw new ValidationError($"{periodParam} is not supported input format"); } }
public static TickerDayParameter Create(string ticker, string dateParam) { JpTickerValidator.Validate(ticker); if (dateParam.Equals(ApiRequestParamConfig.ValueLatest)) { return(new TickerDayParameter(ticker, ApiRequestParamConfig.ValueLatest, LatestDayPeriod.GetInstance())); } else if (PeriodRegularExpressionConfig.DayRegex.IsMatch(dateParam)) { return(new TickerDayParameter(ticker, dateParam, DayPeriod.Parse(dateParam))); } else { throw new ValidationError($"input {dateParam} is not supported format"); } }
private static Company ParseCompany( PropertyDictionary properties, PropertyDescriptionDictionary descriptions) { var fixedTierRangeJson = JObject.Parse(properties.Get(PropertyNames.FixedTierRange)); var fixedTierRange = FixedTierRangeParser.Parse(fixedTierRangeJson.Properties()); var oldestFy = uint.Parse(properties.Get(PropertyNames.OldestFiscalYear)); var oldestFq = uint.Parse(properties.Get(PropertyNames.OldestFiscalQuarter)); var latestFy = uint.Parse(properties.Get(PropertyNames.LatestFiscalYear)); var latestFq = uint.Parse(properties.Get(PropertyNames.LatestFiscalQuarter)); var oldestDate = DayPeriod.Parse(properties.Get(PropertyNames.OldestDate)); // use today as latest date var latestDate = DayPeriod.Create(DateTime.Today); var fixedTierQuarterRange = PeriodRange <FiscalQuarterPeriod> .Create(fixedTierRange.OldestQuarter, fixedTierRange.LatestQuarter); var fixedTierDayRange = PeriodRange <DayPeriod> .Create(fixedTierRange.OldestDate, fixedTierRange.LatestDate); var ondemandPeriodRange = PeriodRange <FiscalQuarterPeriod> .Create( FiscalQuarterPeriod.Create(oldestFy, oldestFq), FiscalQuarterPeriod.Create(latestFy, latestFq) ); var ondemandTierDayRange = PeriodRange <DayPeriod> .Create(oldestDate, latestDate); return(Company.Create( properties.Get(PropertyNames.Ticker), fixedTierQuarterRange, ondemandPeriodRange, fixedTierDayRange, ondemandTierDayRange, properties, descriptions )); }