public static TDay DateFromInPeriod(Period period, TDate?dateFrom)
        {
            PeriodTerm dayTermFrom = TERM_BEG_FINISHED;

            DateTime periodDateBeg = new DateTime(period.Year(), period.Month(), 1);

            if (dateFrom != null)
            {
                dayTermFrom = (TDay)dateFrom.Value.Day;
            }

            if (dateFrom == null || dateFrom < periodDateBeg)
            {
                dayTermFrom = 1;
            }
            return(dayTermFrom);
        }
        public static TDay DateEndsInPeriod(Period period, DateTime?dateEnds)
        {
            PeriodTerm dayTermEnd = TERM_END_FINISHED;
            TDay       daysPeriod = (TDay)DateTime.DaysInMonth(period.Year(), period.Month());

            DateTime periodDateEnd = new DateTime(period.Year(), period.Month(), (int)daysPeriod);

            if (dateEnds != null)
            {
                dayTermEnd = (TDay)dateEnds.Value.Day;
            }

            if (dateEnds == null || dateEnds > periodDateEnd)
            {
                dayTermEnd = (TDay)daysPeriod;
            }
            return(dayTermEnd);
        }