public static double CalculateTarget(int month, DateTime?onboardDate, DateTime?offboardDate, double target)
        {
            double calculatedTarget = 0d;

            DateTime date = DateTimeUtility.GetDate(month);

            int currentMonth = date.Month;
            int currentYear  = date.Year;
            int MonthlyDays  = DateTime.DaysInMonth(currentYear, currentMonth);
            int startDay     = 1;
            int endDay       = MonthlyDays;

            //如果入职日期在12号之前,指标按日历数比例计算
            if (onboardDate != null && onboardDate.Value.Month == currentMonth && onboardDate.Value.Year == currentYear && onboardDate.Value.Day < 12)
            {
                startDay = onboardDate.Value.Day;
            }

            //如果入职日期之前的月份,或者在12号之后,指标为0
            if ((onboardDate != null && onboardDate.Value.Month > currentMonth && onboardDate.Value.Year >= currentYear) ||
                (onboardDate != null && onboardDate.Value.Month == currentMonth && onboardDate.Value.Year == currentYear && onboardDate.Value.Day >= 12))
            {
                startDay = endDay + 1;
            }
            //if(offboardDate != null && offboardDate.Value.Month == currentMonth && onboardDate.Value.Year == currentYear)
            //{
            //    endDay = offboardDate.Value.Day;
            //}

            calculatedTarget = target * (endDay - startDay + 1) / (MonthlyDays);

            return(calculatedTarget);
        }