2015-11-04 88 views
0

amibroker函数datenum()返回一个数组,其日期以数字表示。如何将此数组转换为字符串等效?Amibroker:将日期编号从datenum()转换为字符串

DateNum

我有这个功能,下面几乎完成这个任务除2000年外,只有年和支持后。如何解决这个问题,以便2000年之前的日期能够得到支持?

/* 
Function changes DateNum ex:1040928 en String ddmmyyyy ex:28/09/2004 (only > 2000 year) 
*/ 
function sDate(nDate) 
{ 

    string = StrFormat("%0.9g", nDate); 

    //extract string part 
    aa = StrLeft(string, 3); 
    mm = StrMid(string, 3, 2); 
    dd = StrRight(string, 2); 

    //transform year en num 
    aa1 = StrToNum(aa) + 1900; // ONLY CORRECT AFTER 2000 
    yyyy = NumToStr(aa1, 1, False); 

    result = yyyy + "-" + mm + "-" + dd; 
    return result; 
} 

回答

1

行更改

string = StrFormat("%0.9g", nDate); 

string = StrFormat("%07.07g", nDate); 
0

可以datenum转换为字符串容易使用内置的AFL功能,这是使用代码:

DateNumberArray = DateTimeConvert(2, DateNum()); 

for (i = 0; i < BarCount; i++) 
{ 
_TRACE(DateTimeToStr(DateNumberArray [i])); 
} 

2是从DateN转换而来的代码恩,请参阅DateTimeConvert文档。