nextDate() публичный статический Метод

public static nextDate ( ) : Date
Результат Date
Пример #1
0
        public static Date date(string immCode, Date refDate)
        {
            if (!isIMMcode(immCode, false))
            {
                throw new ArgumentException(immCode + " is not a valid IMM code");
            }

            Date referenceDate = (refDate ?? Settings.evaluationDate());

            int m = "FGHJKMNQUVXZ".IndexOf(immCode.ToUpper()[0]) + 1;

            if (m == 0)
            {
                throw new ArgumentException("invalid IMM month letter");
            }

            if (!Char.IsDigit(immCode[1]))
            {
                throw new ArgumentException(immCode + " is not a valid IMM code");
            }
            int y = immCode[1] - '0';

            y += referenceDate.Year - (referenceDate.Year % 10);

            /* year<10 are not valid years: to avoid a run-time
             * exception in few lines below we need to add 10 years right away */
            if (y == 0 && referenceDate.Year <= 1909)
            {
                y += 10;
            }

            Date result = IMM.nextDate(new Date(1, m, y), false);

            if (result < referenceDate)
            {
                result = IMM.nextDate(new Date(1, m, y + 10), false);
            }

            return(result);
        }