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;
}
答案 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文档。