# 基础函数 / 日期时间 ## `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号 ``` ## `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号 ``` ## `excelDateToInt(r_date)` 声明:function 将日期型报告期转化成整数型报告期 | 参数 | 类型 | 说明 | | -------- | --------- | ------------ | | `r_date` | tdatetime | 日期型报告期 | 返回:integer ### 示例 ```tsl r_date := 20101231; return excelDateToInt(r_date); // 输出:20101231 ``` ## `excelIntToDate(r_date)` 声明:function 将报告期类型日期转化成实数型 | 参数 | 类型 | 说明 | | -------- | ------- | ------------------ | | `r_date` | integer | 整型类的报告期日期 | 返回:tdatetime ### 示例 ```tsl // 报告期为2010年年报 r_date := 20101231; return excelIntToDate(r_date); // 输出:40543 ``` ## `excelRDate(r_date)` 声明:function 将整数报告期转换成Excel的字符串日期类型 | 参数 | 类型 | 说明 | | -------- | ------- | -------------------------- | | `r_date` | integer | 报告期,一般用整型日期表示 | 返回:string ### 示例 ```tsl r_date := 20101231; return excelRDate(r_date); // 输出:2010-12-31 ``` ## `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 ``` ## `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号 ``` ## `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号 ``` ## `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 ``` ## `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 ```