2015-11-04 87 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文檔。