getKIndex static method
dynamic
getKIndex(
- dynamic kDataL,
- dynamic time,
- dynamic kData,
- dynamic interval,
Implementation
static getKIndex(kDataL,time,kData,interval){
int i = 0;
for(i = 0;i<kDataL;i++){
if(kData[i]['time'] == time){
return i;
}
}
var firstT = kData[0]['time'];
var lastT = kData[kDataL-1]['time'];
int chaT = 0;
int it = 0;
if(time<firstT){
it = firstT;
chaT = time-firstT;
}else{
chaT = time-lastT;
it = lastT;
}
// print('存储的k线 时间差: ${chaT} 基础时间 ${it} 最后时间:${lastT}');
dynamic gapNum = 0;
if (interval == 'fs') {
interval = 1.toString(); //单位秒
}
if (Tools.isNumber(interval)) {
interval = num.parse(interval) * 1000; //转换成毫秒值
// print('存储的k线 ceil前: ${chaT/interval} ');
gapNum = (chaT/interval).ceil();
// print('存储的k线 ceil后: ${gapNum} ');
} else {
DateTime dateA = DateTime.fromMillisecondsSinceEpoch(it);
if (interval == intervalType['1day']) {
gapNum = calculateDaysDifference(dateA,chaT);
gapNum = (gapNum/1).ceil();
} else if (interval == intervalType['3day']) {
gapNum = calculateDaysDifference(dateA,chaT);
gapNum = (gapNum/3).ceil();
} else if (interval == intervalType['1week']) {
gapNum = calculateDaysDifference(dateA,chaT);
gapNum = (gapNum/7).ceil();
} else if (interval == intervalType['3week']) {
gapNum = calculateDaysDifference(dateA,chaT);
gapNum = (gapNum/21).ceil();
} else if (interval == intervalType['1mouth']) {
gapNum = calculateMonthDifference(dateA,chaT);
gapNum = (gapNum/1).ceil();
} else if (interval == intervalType['2mouth']) {
gapNum = calculateMonthDifference(dateA,chaT);
gapNum = (gapNum/2).ceil();
} else if (interval == intervalType['3mouth']) {
gapNum = calculateMonthDifference(dateA,chaT);
gapNum = (gapNum/3).ceil();
} else if (interval == intervalType['1year']) {
gapNum = calculateYearDifference(dateA,chaT);
gapNum = (gapNum/1).ceil();
}
}
if(chaT>=0){
// print('存储的k线 索引: ${kDataL-1+gapNum} kdatal ${kDataL} ');
return kDataL-1+gapNum;
}else{
// print('存储的k线 索引: ${kDataL-1+gapNum} kdatal ${kDataL} ');
return gapNum;
}
}