# Dotnet - 运行时 / 日期时间(AnalyseNG.NET 专有) ## `strtodatetime2(s)` 声明:function 字符串->日期时间(包含毫秒) | 参数 | 类型 | 说明 | | ---- | ------ | -------------------------------------------------------------------------------------------------------------- | | `s` | string | S的格式必须为:yyyy-m-d h:m:s:z    其中日期和时间需要用空格隔开,时间分隔必须用:    如"2021-8-12 10:31:24:199" | 返回:tdatetime ### 示例 ```tsl // 字符串2021-8-12 10:31:24:199 转换为日期时间格式(包含毫秒) s := "2021-8-12 10:31:24:199"; return strtodatetime2(s); // 结果:44420.4384745255 ``` ## `strToDateExt(s, str_format)` 声明:function 将字符串类型的日期按照不同的格式转换成实数型的日期。 | 参数 | 类型 | 说明 | | ------------ | ------- | ------------------------------------------ | | `s` | string | 字符串类型的日期,包含3中形式,见下表。 | | `str_format` | integer | 标准化的日期格式,对应的S分别用0、1、2表示 | 返回:tdatetime ### 示例 ```tsl s := '16/1/2011'; str_format := 0; return strToDateExt(s, str_format); // 结果:40559 ``` ## `excelIntToDate(r_date)` 声明:function 将报告期类型日期转化成实数型 | 参数 | 类型 | 说明 | | -------- | ------- | ------------------ | | `r_date` | integer | 整型类的报告期日期 | 返回:tdatetime ### 示例 ```tsl // 报告期为2010年年报 r_date := 20101231; return excelIntToDate(r_date); // 结果:40543 ``` ## `excelDateToInt(r_date)` 声明:function 将日期型报告期转化成整数型报告期 | 参数 | 类型 | 说明 | | -------- | --------- | ------------ | | `r_date` | tdatetime | 日期型报告期 | 返回:integer ### 示例 ```tsl r_date := 20101231; return excelDateToInt(r_date); // 结果:20101231 ``` ## `formatStrToDateTime2(s, format_str)` 声明:function 字符串->日期时间(包含毫秒)。 | 参数 | 类型 | 说明 | | ------------ | ------ | ---------------------- | | `s` | string | 字符串类型,时间字符串 | | `format_str` | string | 字符串类型,格式字符串 | 返回:datetime ### 示例 ```tsl // 字符串2021-8-12 10:31:24:199 转换为日期时间格式(包含毫秒) s := "2021.01.04T23:00:00.000"; format_str := "yyyy.mm.ddThh:nn:ss.zzz"; return formatStrToDateTime2(s, format_str); // 结果:44200.9583333333 ``` ## `startOfTheHalfYear(end_t)` 声明:function 返回Endt所在半年的开始日期(半年的第一天) | 参数 | 类型 | 说明 | | ------- | --------- | ---- | | `end_t` | tdatetime | 日期 | 返回:tdatetime ### 示例 ```tsl end_t := 40599; // 40559表示2011年1月16号 return startOfTheHalfYear(end_t); // 结果:40544 //40544表示2011年1月1号 ``` ## `startOfTheQuarter(end_t)` 声明:function 返回Endt所在季度的开始日期(季度的第一天) | 参数 | 类型 | 说明 | | ------- | --------- | ---- | | `end_t` | tdatetime | 日期 | 返回:tdatetime ### 示例 ```tsl end_t := 40540; // 40540表示2010年12月28日 return startOfTheQuarter (end_t); // 结果:40452 //40452表示2010年10月1号 ``` ## `endOfTheQuarter(end_t)` 声明:function 返回Endt所在季度的截止日期(季度的最后一天) | 参数 | 类型 | 说明 | | ------- | --------- | ---- | | `end_t` | tdatetime | 日期 | 返回:tdatetime ### 示例 ```tsl end_t := 40540; // 40540表示2010年12月28日 return endOfTheQuarter (end_t); // 结果:40543 //40543表示2010年12月31号 ``` ## `endOfTheHalfYear(end_t)` 声明:function 返回Endt所在半年的截止日期(半年的最后一天) | 参数 | 类型 | 说明 | | ------- | --------- | ---- | | `end_t` | tdatetime | 日期 | 返回:tdatetime ### 示例 ```tsl end_t := 40540; // 40540表示2010年12月28日 return endOfTheHalfYear (end_t); // 结果:40543 //40543表示2010年12月31号 ``` ## `incHalfYear(a_value, number)` 声明:function 求Avalue的日期开始往后推移Number个半年的日期 | 参数 | 类型 | 说明 | | --------- | --------- | -------------------------------- | | `a_value` | tdatetime | 实数表示的日期 | | `number` | integer | 向后推移的整数,负数表示向前推移 | 返回:tdatetime ### 示例 ```tsl avalue := 40179; // 40179表示2010年1月1号 number := 2; return incHalfYear(a_value, number); // 结果:40544 //40544表示2011年1月1号 ``` ## `incQuarter(avalue, number)` 声明:function 求Avalue的日期开始往后推移Number个季度的日期 | 参数 | 类型 | 说明 | | -------- | --------- | ---------------------------------- | | `avalue` | tdatetime | 实数表示的日期 | | `number` | integer | 向后推移的整数。负数表示向前推移。 | 返回:tdatetime ### 示例 ```tsl avalue := 40179; // 40179表示2010年1月1号 number := 2; return incQuarter(a_value, number); // 结果:40360 //40360表示2010年7月1号 ``` ## `excelRDate(r_date)` 声明:function 将整数报告期转换成Excel的字符串日期类型 | 参数 | 类型 | 说明 | | -------- | ------- | -------------------------- | | `r_date` | integer | 报告期,一般用整型日期表示 | 返回:string ### 示例 ```tsl r_date := 20101231; return excelRDate(r_date); // 结果:2010-12-31 ``` ## `incPrecodeCallBack(s)` 声明:function 将“000002.SZ”的代码转化为“SZ000002” | 参数 | 类型 | 说明 | | ---- | ------ | ------ | | `s` | string | 字符串 | 返回:string ### 示例 ```tsl return incPrecodeCallBack('000002.SZ'); // 结果:’SZ000002’ ``` ## `IncomeTax_12(r_date)` 声明:function 最近12个月的所得税。 (1)所得税取自合并利润分配表; (2)根据最近12个月的算法得到最近12个月的所得税【注1】。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期。 | 返回:float ## `IncomeTax_Year(r_date, n)` 声明:function 最近N年的所得税。 (1)取向后兼容的最新年报Q1,取N-1年前同期的年报Q2; (2)在合并利润分配表取Q2报告期的所得税。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期; | | `n` | any | 整数,最近N年 | 返回:float ## `IncomeTax_Q(r_date)` 声明:function 计算指定报告期最近1季度的所得税。 根据季度数据的算法【注3】,函数从合并现金流量表中取出多个报告期的筹资活动产生的现金流,计算最近1季度的所得税。 | 参数 | 类型 | 说明 | | -------- | -------- | -------------- | | `r_date` | datetime | 整数,报告期; | 返回:float ## `Time_InvFun(left_values, right_values)` 声明:function 根据两个输入序列计算逆函数序列。 | 参数 | 类型 | 说明 | | -------------- | ----- | -------- | | `left_values` | array | 左侧序列 | | `right_values` | array | 右侧序列 | 返回:array ## `Times_Granger(y_values, x_values, lag_order, alpha)` 声明:function 检验 `x_values` 是否为 `y_values` 的 Granger 原因。 | 参数 | 类型 | 说明 | | ----------- | ----- | ------------ | | `y_values` | array | 被解释序列 | | `x_values` | array | 候选原因序列 | | `lag_order` | any | 滞后阶数 | | `alpha` | float | 显著性水平 | 返回:array ## `Times_Cointergration_test(y_values, x_values, diff_order, alpha, lag_order, criterion)` 声明:function 执行两个序列的协整检验。 | 参数 | 类型 | 说明 | | ------------ | ------ | -------------------------------- | | `y_values` | array | 第一条时间序列 | | `x_values` | array | 第二条时间序列 | | `diff_order` | any | 差分阶数 | | `alpha` | float | 显著性水平 | | `lag_order` | any | 滞后阶数 | | `criterion` | string | 信息准则;常用 `"AIC"`、`"SBIC"` | 返回:array ## `Times_Cointergration(y_values, x_values, alpha)` 声明:function 判断两个序列是否存在协整关系。 | 参数 | 类型 | 说明 | | ---------- | ----- | -------------- | | `y_values` | array | 第一条时间序列 | | `x_values` | array | 第二条时间序列 | | `alpha` | float | 显著性水平 | 返回:string ## `Times_ECM(y_values, x_values, residuals, alpha, p_order, q_order)` 声明:function 建立误差修正模型。 | 参数 | 类型 | 说明 | | ----------- | ----- | ------------------- | | `y_values` | array | 第一条时间序列 | | `x_values` | array | 第二条时间序列 | | `residuals` | array | 协整检验残差项 | | `alpha` | float | 显著性水平 | | `p_order` | any | `y_values` 滞后阶数 | | `q_order` | any | `x_values` 滞后阶数 | 返回:array ## `Times_GrangerCausality(series_matrix, lag_order)` 声明:function 对矩阵中的多个序列执行两两 Granger 因果检验。 | 参数 | 类型 | 说明 | | --------------- | ----- | --------------------------------------------------- | | `series_matrix` | array | 多个时间序列组成的矩阵;可由两条序列用 `left_series | | `lag_order` | any | 滞后阶数 | 返回:array ## `Time_PACF(y)` 声明:function 偏自相关系数,计算随机序列与所有滞后阶数的偏自相关系数,返回结果是一个数组。偏相关系数的计算公式如下: 是自相关系数,是偏相关系数 | 参数 | 类型 | 说明 | | ---- | ----- | ------------------------ | | `y` | array | 样本序列,为一维数组类型 | 返回:array ## `Time_RandomTest(y, m, alpha)` 声明:function Ljung和Box提出的修正Qm统计量,用于检验序列是否为白噪声,原假设为白噪声序列,即纯随机序列。(Hypothesis为1表示接受原假设,0表示拒绝原假设) Qm统计量的计算公式如下: 其中:是自相关系数,T是样本容量,m是最大滞后长度 | 参数 | 类型 | 说明 | | ------- | ----- | ---------------------------------------------- | | `y` | array | 样本序列,为一维数组类型 | | `m` | any | 最大滞后长度,整数类型,一般取样本数的四分之一 | | `alpha` | float | 显著性水平,实数类型,取值在0-1之间 | 返回:array ## `Times_ADFTest(y, diff, style, f, p, alpha)` 声明:function 时间序列的平稳性ADF检验;返回结果为ADF统计量和给定显著性水平下的ADF统计量的临界值;如果ADF统计量的绝对值比临界值的绝对值大,则可在该显著性水平下,拒绝原序列存在单位根的原假设,即原序列是平稳的 | 参数 | 类型 | 说明 | | ------- | ------ | ------------------------------------------------------------------------------------- | | `y` | array | 时间序列数据,为一维数组类型 | | `diff` | any | 差分次数,整数类型,0表示不进行差分 | | `style` | any | 是否存在常数或趋势项的选项,整数类型,无常数无趋势使用0、有常数无趋势1、有常数有趋势2 | | `f` | string | 滞后阶数判断信息准则,字符串类型,"SBIC","AIC" | | `p` | any | 滞后阶数,为整型类型,输入0则表示自动选择 | | `alpha` | float | 显著性水平,实数类型,范围在0-1之间 | 返回:array ## `Time_GreenFun(ap, mq)` 声明:function 中间函数,ARMA模型的Green函数,Green函数的递推公式如下: 式中: ,,是自回归方程系数,为移动平均系数, | 参数 | 类型 | 说明 | | ---- | ----- | ------------------------------ | | `ap` | array | 自相关系数,为一维数组类型; | | `mq` | array | 移动平均系数,为一维数组类型; | 返回:array ## `incPrecode()` 声明:function 6位代码->8位代码;注意,该函数主要用于客户端结果处理,不提供给用户程序编辑 返回:array,tablearray