예제 #1
0
        public static string ValidateFiscalQuarter(string fiscalPeriodParam)
        {
            var tokens = fiscalPeriodParam.Split('Q');

            if (tokens.Length != 2)
            {
                return("フォーマットが正しくありません。'2017Q1'のように設定してください");
            }
            else if (!uint.TryParse(tokens[0], out uint year))
            {
                return("年が数値ではありません。");
            }
            else if (!uint.TryParse(tokens[1], out uint quarter))
            {
                return("四半期が数値ではありません。");
            }
            else
            {
                try
                {
                    FiscalYearValidator.Validate(year);
                }
                catch (ValidationError) { return($"年の設定が不正です: {year}"); }
                try
                {
                    FiscalQuarterValidator.Validate(quarter);
                }
                catch (ValidationError) { return($"四半期の設定が不正です: {quarter}"); }
            }
            return(null);
        }
        public void ValidateTest()
        {
            // ok case
            new List <uint> {
                1901, 2000, 2020, 2099
            }.ForEach(q => FiscalYearValidator.Validate(q));

            // error case
            Assert.ThrowsException <ValidationError>(() => FiscalYearValidator.Validate(0));
            Assert.ThrowsException <ValidationError>(() => FiscalYearValidator.Validate(1899));
            Assert.ThrowsException <ValidationError>(() => FiscalYearValidator.Validate(2101));
        }
예제 #3
0
 public static FiscalQuarterPeriod Create(uint fiscalYear, uint fiscalQuarter)
 {
     FiscalYearValidator.Validate(fiscalYear);
     FiscalQuarterValidator.Validate(fiscalQuarter);
     return(new FiscalQuarterPeriod(fiscalYear, fiscalQuarter));
 }