0

amibroker 函数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;
}
4

2 回答 2

1

换线

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

string = StrFormat( "%07.07g", nDate );
于 2016-01-02T15:13:02.840 回答
0

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

DateNumberArray = DateTimeConvert( 2, DateNum() );

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

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

于 2016-07-28T14:44:34.293 回答