public ContractTime GetContractTime(DateTime date, int index = 0) { ContractTime cContractTime = null; date = new DateTime(date.Year, date.Month, date.Day, __iCloseHour, __iCloseMinute, __iCloseSecond); int iCount = __cContractTimes.Count; for (int i = index; i < iCount; i++) { ContractTime cContractTemp = __cContractTimes[i]; double dTotals = (cContractTemp.MaturityDate - date).TotalSeconds; if (dTotals >= 0 && dTotals <= 604800) { cContractTime = cContractTemp; break; } } if (cContractTime == null) { if (index > 0) { date = date.AddSeconds(index * 604800); } cContractTime = MaturityDateUtil.GetWeekMaturityDate(date); } return(cContractTime); }
private void CalcContractTime(DateTime today) { //先計算出目前此週到期日 ContractTime cCurrentContractTime = MaturityDateUtil.GetWeekMaturityDate(today); AddContractTime(0, cCurrentContractTime); DateTime cDate = cCurrentContractTime.MaturityDate.AddSeconds(604800); for (int i = 1; i < 3; i++) { ContractTime cContractTime = MaturityDateUtil.GetWeekMaturityDate(cDate); AddContractTime(i, cContractTime); cDate = cContractTime.MaturityDate.AddSeconds(604800); } }