//如果开始时间不是月初采用【账期:7月15到8月14 账期是7;8月15 - 9月14 账期是8】
List<PriceDivideResult> res = new List<PriceDivideResult>();
var periodIndex = 1;
var timeIndex = beginTime.AddDays(14 - beginTime.Day);
if (beginTime > endDate)
{
throw new Exception($"开始时间大于结束时间:{beginTime.ToString("yyyy-MM-dd HH:mm:ss")}-{endDate.ToString("yyyy-MM-dd HH:mm:ss")}");
}
else if (beginTime.Day > 14)
{
while (timeIndex <= endDate)
{
res.Add(new PriceDivideResult()
{
Period = timeIndex.Month,
FeeStartDate = periodIndex == 1 ? beginTime : timeIndex.AddDays(1),
FeeEndDate = (endDate <= timeIndex.AddMonths(1)) ? endDate : timeIndex.AddMonths(1),
});
timeIndex = timeIndex.AddMonths(1);
periodIndex++;
if (timeIndex == endDate)
break;
}
}
else if (beginTime.Day <= 14)
{
while (timeIndex <= endDate.AddMonths(1))
{
res.Add(new PriceDivideResult()
{
Period = timeIndex.AddMonths(-1).Month,
FeeStartDate = periodIndex == 1 ? beginTime : timeIndex.AddMonths(-1).AddDays(1),
FeeEndDate = (endDate <= timeIndex) ? endDate : timeIndex,
});
timeIndex = timeIndex.AddMonths(1);
periodIndex++;
if (timeIndex == endDate)
break;
}
}
res.ForEach(u => { u.Price = Decimal.Round(price / (decimal)res.Count(), 2); });
return res;
11-10
1175
06-17
767
10-24
385
01-26
1万+
01-11
2530