QLNet.Schedule.previousTwentieth C# (CSharp) Метод

previousTwentieth() приватный Метод

private previousTwentieth ( Date d, DateGeneration rule ) : Date
d Date
rule DateGeneration
Результат Date
        Date previousTwentieth(Date d, DateGeneration.Rule rule)
        {
            Date result = new Date(20, d.month(), d.year());
            if (result > d)
                result -= new Period(1,TimeUnit.Months);
            if (rule == DateGeneration.Rule.TwentiethIMM ||
                rule == DateGeneration.Rule.OldCDS ||
                rule == DateGeneration.Rule.CDS)
            {
                int m = result.month();
                if (m % 3 != 0) { // not a main IMM nmonth
                    int skip = m%3;
                    result -= new Period(skip,TimeUnit.Months);
                }
            }
            return result;
        }