Amibroker:将日期编号从datenum()转换为字符串

时间:2015-11-04 06:31:24

标签: trading stocks amibroker

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;
}

2 个答案:

答案 0 :(得分:1)

更改行

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

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

答案 1 :(得分:0)

您可以使用内置的afl函数轻松地将datenum转换为字符串,这是要使用的代码:

DateNumberArray = DateTimeConvert( 2, DateNum() );

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

2是从DateNum转换的代码,请参阅DateTimeConvert文档。