【问题标题】:Amibroker: Convert date number from datenum() to stringAmibroker:将日期数从 datenum() 转换为字符串
【发布时间】:2015-11-04 06:31:23
【问题描述】:

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

【问题讨论】:

    标签: trading stocks amibroker


    【解决方案1】:

    换行

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-14
        • 2015-12-20
        • 2015-04-27
        • 1970-01-01
        • 2011-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多